Home
Photos
Links
SED Editor
TypeLib Browser
Data Access
COM
WebBrowser
WMI
MAPI
GDI+
DirectX
Scripting
VB6 ActiveX
Other ActiveX
Other Wrappers

Other Wrappers for the PowerBASIC Compilers

 

Disclaimer

 

This software and accompanying documentation are provided "as is" and without warranties as to performance or merchantability or any other warranties whether expressed or implied. Because of the various hardware and software environments into which this application may be used, no warranty of fitness for a particular purpose is offered. The user must assume the entire risk of using this software. In no case shall any of the contributors to this project be liable for any incidental, special or consequential damages or loss, including, without limitation, lost profits or the inability to use equipment or access data. This is true even if we are advised of the possibility of such damages. We also don't have any obligation of' fix eventual bugs or to add new features.

 

 

TB_WHTTP v.1.0 (Microsoft Windows HTTP Services)

 

Microsoft Windows HTTP Services (WinHTTP) provides developers with a server-supported, high-level interface to the HTTP/1.1 Internet protocol. WinHTTP is designed to be used primarily in server-based scenarios by server applications that communicate with HTTP servers.

WinHTTP is accessible from PB by using either the WinHTTP application programming interface (API), or by using the IWinHttpRequest and IWinHttpRequestEvents interfaces. However, using PB Automation you have not events and you can't use streams. TB_WHTTP overcomes these shortcomings provinding you wrapper functions that do direct VTable calls to the methods and properties of the IWinHttpRequest interface and a template for events sink (TB_WinHttp_Events.inc). To work with streams, download my TB_STG (Structured Storage) library.

As the number of functions is small, TB_WHTTP is provided as an include file instead of a DLL. Several examples are provided. They show you how to use the functions and how to connet to the events fired by the control, as well as alternate ways of reading the data using byte arrays, the safearray API functions and streams.

WinHTTP 5.1 Features

The following features have been added in version 5.1 of WinHTTP:

 IPv6 support.
 AutoProxy capabilities.
 HTTP/1.0 protocol, including support for keep-alive (persistent) connections and session cookies.
 HTTP/1.1 chunked transfer support for HTTP responses.
 Keep-alive pooling of anonymous connections across sessions.
 Secure Sockets Layer (SSL) functionality, including client certificates. Supported SSL protocols include the following: SSL 2.0, SSL 3.0, and Transport Layer Security (TLS) 1.0.
 Support for server and proxy authentication, including integrated support for Microsoft Passport 1.4 and the Negotiate/ Kerberos package.
 Automatic handling of redirects unless suppressed.
 Scriptable interface in addition to the API.
 Trace facility to help troubleshoot problems.

A number of WinINet features are not supported in WinHTTP, including URL caching and persistent cookies, autoproxy, autodialing, offline support, File Transfer Protocol (FTP), and the Gopher protocol.
 

Documentation: WinHTTP Interfaces

Documentation: Windows HTTP Services (WinHTTP)

Download: TB_WHTTP.ZIP

 

 

TB_STG v.1.03 (Structured Storage)

 

Traditional file systems encounter challenges when they attempt to store efficiently multiple kinds of objects in one document. COM provides a solution: a file system within a file. COM structured storage defines how to treat a single file entity as a structured collection of two types of objects — storages and streams — that perform like directories and files. This scheme is called structured storage. The purpose of structured storage is to reduce the performance penalties and overhead associated with storing separate objects in a flat file.

 

Since the Structured Storage interfaces derive directly from IUnknown, its methods can only be called using direct calls through his virtual table. This is the technique used by the wrapper functions included in this library, hiding the low level calls inside the function and allowing you to call the low level methods as if they were regular functions or procedures.

 

This version fixes the function IStorage_DestroyElement (conversion of strName to Unicode was omitted) and has the return value of a few functions changed from LONG to DWORD.

 

Documentation: Structured Storage

Documentation: Interfaces (COM Fundamentals)

Download: TB_STG13.ZIP

 

 

TB_MSTSK v. 1.0 (Task Scheduler)

 

The Task Scheduler service allows you to perform automated tasks on a chosen computer. With this service you can schedule any batch file, program, or document to run at a time that is convenient for you or when a specific event occurs. Task Scheduler monitors the time or event criteria you choose and then executes the task when those criteria are met.

Task Scheduler is automatically installed with the Microsoft® Windows® Server 2003 family, Windows XP, and Windows 2000 operating systems and is started each time the operating system is started. It can be run through the Task Scheduler graphical user interface or through the Task Scheduler API, described in this SDK.

With the Task Scheduler API you can:

Create work items (currently the only work items available are tasks).
Schedule a task to run at a specific time or when a specific event occurs.
Change the schedule for a task.
Customize how tasks run.
Stop a scheduled task.

 

Documentation: Task Scheduler

Download: TB_MSTSK.ZIP

 

 

TB_AGENT v. 1.1 (MSAGENT)

 

Microsoft Agent is a set of programmable software services that supports the presentation of interactive animated characters within the Microsoft Windows interface. Developers can use characters as interactive assistants to introduce, guide, entertain, or otherwise enhance their Web pages or applications in addition to the conventional use of windows, menus, and controls.

Microsoft Agent enables software developers and Web authors to incorporate a new form of user interaction, known as conversational interfaces, that leverages natural aspects of human social communication. In addition to mouse and keyboard input, Microsoft Agent includes optional support for speech recognition so applications can respond to voice commands. Characters can respond using synthesized speech, recorded audio, or text in a cartoon word balloon.

The conversational interface approach facilitated by the Microsoft Agent services does not replace conventional graphical user interface (GUI) design. Instead, character interaction can be easily blended with the conventional interface components such as windows, menus, and controls to extend and enhance your application's interface.

Microsoft Agent's programming interfaces make it easy to animate a character to respond to user input. Animated characters appear in their own window, providing maximum flexibility for where they can be displayed on the screen. Microsoft Agent includes an ActiveX control that makes its services accessible to programming languages that support ActiveX, including Web scripting languages such as Visual Basic Scripting Edition (VBScript). This means that character interaction can be programmed even from HTML pages using the <OBJECT> tag.

TB_AGENT.DLL is a collection of wrapper functions that allow you to use the Microsoft Agent Control in procedural form with PowerBASIC Compiler for Windows 7.0+ or PowerBASIC Console Compiler 3.0+. A template for events sink is provided in
TB_AGENT_EVENTS.INC.

TB_AGTSV.DLL is a collection of wrapper functions that allow you to use Microsoft Agent Server in procedural form with PowerBASIC Compiler for Windows 7.0+ or PowerBASIC Console Compiler 3.0+. A template for events sink is provided in
TB_AGENTSERVER_EVENTS.INC.

 

Download: TB_AGENT.ZIP

 

 

TB_XML40 v. 1.0 (MSXML)

 

Extensible Markup Language (XML) is the universal format for data on the Web. XML allows developers to easily describe and deliver rich, structured data from any application in a standard, consistent way. XML does not replace HTML; rather, it is a complementary format.


TB_XML40.DLL is a collection of wrapper functions that allow to use MSXML 4.0 with the PowerBASIC compilers in procedural form. Templates for events are provided: XMLDOMDocumentEvents.inc, IMXSchemaDecHandler.inc, SAX2_ContentHandler.inc, SAX2_DeclHandler.inc, SAX2_DTDHandler.inc, SAX2_ErrorHandler.inc, SAX2_LexicalHandler.inc.

 

I have not wrapped the following interfaces because they are deprecated: IXMLDocument, IXMLElement, IXMLAttribute, IXMLElementCollection, IXMLError, IXMLElement2, IXTLRuntime, IDSOControl, ISAXXMLFilter, IVBSAXXMLFilter, IMXReaderControl.
 

The XML DOM provides a navigable set of classes that directly reflect the W3C Document Object Model (DOM) Level 1 specification. These classes enable you to construct an XML document in memory. You can then compile and validate your XML documents against a DTD or schema.

 

The SOM (Schema Object Model) provides a navigable set of classes that directly reflect the W3C XML Schema definition language (XSD) specification. These classes enable you to walk through the elements of an XML Schema document and obtain information about the properties and declarations, and about the relationships between them. You can then compile and validate your XML documents against this XML Schema by using the validate method of the DOM.

 

The Simple API for XML (SAX) is a publicly developed standard for the events-based parsing of XML documents. SAX defines an abstract programmatic interface that models the XML information set (infoset) through a linear sequence of familiar method calls.

 

Although SAX and DOM may seem different, each is simply a different projection of the XML infoset onto programmatic types. Because SAX does not demand resources for an in-memory representation of the document, it is a good alternative to the Document Object Model (DOM). SAX facilitates the search of large documents to extract small pieces of information and allows you to abort processing after the information is located. SAX can be used to build DOM trees (or portions of DOM trees); conversely, developers can traverse DOM trees and emit SAX streams.

 

However, the performance benefits of SAX come at a price. For example, in the case of advanced queries, SAX can be burdensome because of the complexities involved in managing context during processing. In these cases, most developers use the DOM or some combination of SAX and DOM.

 

SAX support in MSXML 4.0 and later includes methods for completing transformations and validation, which result in better messaging support for end users. This improves server-side transformations of documents as small as 10-20 kilobytes (KB) and the processing of documents of 1 megabyte (MB) or more.

 

Documentation: MSXML SDK

Download: TB_XML40.ZIP

 

 

TB_IACCS v.1.0 (Accessibility)

 

The IAccessible interface is the heart of Microsoft Active Accessibility. Applications implement this Component Object Model (COM) interface to represent their custom user interface elements, which can include their client area as accessible objects, if necessary. Client applications call IAccessible methods and properties to obtain information about an application's user interface and data.

 

The zipped file contains TB_IAccessible.inc (the wrapper functions that call the IAccessible methods through the VTable) and PB_IAccessible.inc (a PB-like interface made by hand because the PB COM Browser is unable to do it since this component doesn't have a ProgID). Both files include the declares for the functions AccessibleObjectFromPoint and AccessibleObjectFromWindow, contained in Oleacc.dll, that can be used to retrieve a reference pointer to the IAccessible interface. Two examples, PB_TestIAcc_01. bas and EX_TestIAcc_01.bas, show how to use the PB Automation interface and the direct VTable call's functions.

 

Documentation: IAccessible

Download: TB_IACCS.ZIP

 

Home Photos Links SED Editor TypeLib Browser Data Access COM WebBrowser WMI MAPI GDI+ DirectX Scripting VB6 ActiveX Other ActiveX Other Wrappers

Page last updated on Friday, 20 July 2007 20:31:53 +0200