Web
The Internet Explorer web browser also exposes many APIs that are often used by applications, and as such could be considered a part of the Windows API. Internet Explorer has been included with the operating system since Windows 98 Second Edition, and has provided web related services to applications since Windows 98. Specifically, it is used to provide:- An embeddable web browser control, contained in shdocvw.dll and mshtml.dll.
- The URL monitor service, held in urlmon.dll, which provides COM objects to applications for resolving URLs. Applications can also provide their own URL handlers for others to use.
- A library for assisting with multi-language and international text support (mlang.dll).
- DirectX Transforms, a set of image filter components.
- XML support (the MSXML components, held in msxml*.dll).
- Access to the Windows Address Book.
Microsoft has provided the DirectX set of APIs as part of every Windows installation since Windows 95 OSR2. DirectX provides a loosely related set of multimedia and gaming services, including:
- Direct3D for access to 3D hardware accelerated graphics.
- DirectDraw for hardware accelerated access to the 2D framebuffer. As of DirectX 8, this component has been deprecated in favor of Direct3D, which provides more general high-performance graphics functionality (as 2D rendering is a subset of 3D rendering).
- DirectSound for low level hardware accelerated sound card access.
- DirectInput for communication with input devices such as joysticks and gamepads.
- DirectPlay as a multiplayer gaming infrastructure. This component has been deprecated as of DirectX 9 and Microsoft no longer recommends its use for game development.
- DirectShow which builds and runs generic multimedia pipelines. It is comparable to the GStreamer framework and is often used to render in-game videos and build media players (Windows Media Player is based upon it). DirectShow is no longer recommended for game development.
- DirectMusic - allows playing of MIDI files, deprecated.
The Windows API mostly concerns itself with the interaction between the operating system and an application. For communication between the different Windows applications among themselves, Microsoft has developed a series of technologies alongside the main Windows API. This started out with Dynamic Data Exchange (DDE), which was superseded by Object Linking and Embedding (OLE) and later by the Component Object Model (COM), Automation Objects, ActiveX controls, and the .NET Framework. There is not always a clear distinction between these technologies, and there is quite a lot of overlap.
The variety of terms is basically the result of grouping software mechanisms that relate to a particular aspect of software development. Automation specifically relates to exporting the functionality of an application or component (as an API) so that it can be controlled by another application instead of just by a human user, .NET is a self-contained general methodology and technology for developing Desktop and Web applications written in a variety of "Just in Time" compiled languages.
Wrapper libraries
Various wrappers were developed by Microsoft that took over some of the more low level functions of the Windows API, and allowed applications to interact with the API in a more abstract manner. Microsoft Foundation Class Library (MFC) wrapped Windows API functionality in C++ classes, and thus allows a more object oriented way of interacting with the API. The Active Template Library (ATL) is a template oriented wrapper for COM. The Windows Template Library (WTL) was developed as an extension to ATL, and intended as a lightweight alternative to MFC.Also notable are some of Borland's offerings. Object Windows Library (OWL) was released to compete with MFC, and offered a similar object-oriented wrapper. Borland later deprecated it in favour of the Visual Component Library (VCL), which is written in Object Pascal and available in both Delphi and C++ Builder.
Most application frameworks for Windows (at least partially) wrap the Windows API. Thus, the .NET Framework and Java, likewise any other programming languages under Windows, are (or contain) Wrapper Libraries.
Windows API Code Pack for Microsoft .NET Framework is a .Net Wrapper Library for Windows API.
No comments:
Post a Comment