|















|
|
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
|
|