Condividi tramite


Adapter_DllGetClassObject function

Retrieves an interface pointer that a provider can use to communicate with the specified class object. The interface exposes the DllGetClassObject function to the provider. The CoGetClassObject function locates, and if necessary, dynamically loads the executable code that is required by this operation.

[!Important]
This function is only used by generated code and should not be used by developers.

Syntax

STDAPI Adapter_DllGetClassObject(
  _In_  CLSID          supportedClassIds,
  _In_  MI_MainFuncPtr fpMain,
  _In_  REFCLSID       rclsid,
  _In_  REFIID         riid,
  _Out_ PVOID          *ppv
);

Parameters

supportedClassIds [in]

The CLSID that identifies the class object.

fpMain [in]

A pointer to the entry function that retrieves the class object.

rclsid [in]

The CLSID that identifies the class object.

riid [in]

A reference to the identifier of the interface that the provider is to use to communicate with the class object. Usually this value is set to IID_IClassFactory, which is defined in the OLE headers as the interface identifier for IClassFactory. However, the other interface identifiers defined in the OLE header files are also valid. The interface identifiers are defined in the OLE header files as IID_interfacename, where interfacename is the name of the interface.

ppv [out]

The address of the pointer variable that receives the interface pointer requested in the riid parameter. If this function returns successfully, the ppv parameter will contain the requested interface pointer.

Return value

This function returns one of the following values:

CO_E_APPDIDNTREG

The executable was launched, but it did not register the class object (and it may have shut down).

CO_E_APPNOTFOUND

The executable file was not found (CLSCTX_LOCAL_SERVER only).

CO_E_DLLNOTFOUND

Either the in-process DLL or handler DLL was not found.

CO_E_ERRORINDLL

There is an error in the executable image.

E_ACCESSDENIED

There was a general access failure on load.

E_NOINTERFACE

Either the object pointed to by ppv does not support the interface identified by riid, or the QueryInterface operation on the class object returned E_NOINTERFACE.

REGDB_E_CLASSNOTREG

The CLSID is not properly registered. This error can also indicate that the dwClsContext value specified in the CoCreateInstance or CoCreateInstanceEx function is not in the registry.

REGDB_E_READREGDB

There was an error reading the registration database.

S_OK

The location and connection to the specified class object was successful.

WBEM_E_INVALID_PARAMETER

The value for supportedClassId is not included in rclisid.

WBEM_E_NOT_SUPPORTED

The thread model of the DLL is registered as single-threaded apartment (STA), which is not supported by the MI framework.

WBEM_E_OUT_OF_MEMORY

There was not enough memory for the operation.

Requirements

Minimum supported client
Windows 8
Minimum supported server
Windows Server 2012
DLL
WmiToMi.dll

See also

Adapter Functions