IDirectInput8::CreateDevice
IDirectInput8::CreateDevice
Creates and initializes an instance of a device based on a given globally unique identifier (GUID), and obtains an
IDirectInputDevice8 Interface interface.
HRESULT CreateDevice(
REFGUID rguid,
LPDIRECTINPUTDEVICE * lplpDirectInputDevice,
LPUNKNOWN pUnkOuter
);
Parameters
- rguid
- Reference to the GUID for the desired input device (see Remarks). The GUID is retrieved through the IDirectInput8::EnumDevices method, or it can be one of the predefined GUIDs listed below. For the following GUID values to be valid, your application must define INITGUID before all other preprocessor directives at the beginning of the source file, or link to Dxguid.lib.
- GUID_SysKeyboard
- The default system keyboard.
- GUID_SysMouse
- The default system mouse.
- lplpDirectInputDevice
- Address of a variable to receive the
IDirectInputDevice8 Interface interface pointer if successful.
- pUnkOuter
- Address of the controlling object's
IUnknown interface for COM aggregation, or NULL if the interface is not aggregated. Most calling applications pass NULL.
Return Values
If the method succeeds, the return value is DI_OK. If the method fails, the return value can be one of the following: DIERR_DEVICENOTREG, DIERR_INVALIDPARAM, DIERR_NOINTERFACE,
DIERR_NOTINITIALIZED, DIERR_OUTOFMEMORY.
Remarks
Calling this method with pUnkOuter = NULL is equivalent to creating the object by
CoCreateInstance (&CLSID_DirectInputDevice, NULL, CLSCTX_INPROC_SERVER, riid, lplpDirectInputDevice) and then initializing it with Initialize.
Calling this method with pUnkOuter != NULL is equivalent to creating the object by
CoCreateInstance (&CLSID_DirectInputDevice, punkOuter, CLSCTX_INPROC_SERVER, &IID_IUnknown, lplpDirectInputDevice). The aggregated object must be initialized manually.
Requirements
Header: Declared in Dinput.h.