iunknown.h

Overview

Related Modules:

Samgr

Description:

Provides the base class and default implementation for external functions of system capabilities.

Since:

1.0

Version:

1.0

Summary

Data Structures

Data Structure Name Description
IUnknown Defines the IUnknown class.
IUnknownEntry Defines the IUnknown implementation class.

Macros

Macro Name and Value Description
DEFAULT_VERSION   0x20 Defines the default IUnknown version. You can customize the version.
INHERIT_IUNKNOWN Defines the macro for inheriting the IUnknown interface.
INHERIT_IUNKNOWNENTRY(T) Defines the macro for inheriting the classes that implement the IUnknown interface.
DEFAULT_IUNKNOWN_IMPL Defines the default marco for initializing the IUnknown interface.
IUNKNOWN_ENTRY_BEGIN(version) Defines the macro for initializing the classes that implement the IUnknown interface.
IUNKNOWN_ENTRY_END   } IUnknown Defines the end macro for initializing the IUnknown implementation object.
GET_IUNKNOWN(T)   (IUnknown *)(&((T).iUnknown)) Obtains the pointer of the IUnknown interface object from the subclass object T (generic macro) of the IUnknown implementation class.

Typedefs

Typedef Name Description
IUnknownEntry typedef struct IUnknownEntry Defines the IUnknown implementation class.

Functions

Function Name Description
IUNKNOWN_AddRef (IUnknown iUnknown) int Increments the reference count in this IUnknown interface.
IUNKNOWN_QueryInterface (IUnknown iUnknown, int ver, void *target) int Queries the IUnknown interfaces of a specified version (downcasting).
IUNKNOWN_Release (IUnknown iUnknown) int Releases a reference to an IUnknown interface that is no longer used.