Microsoft DirectX 9.0

IDirectInputDevice8::Initialize Method

Initializes a DirectInputDevice object. The IDirectInput8::CreateDevice method automatically initializes a device after creating it; applications normally do not need to call this method.


HRESULT Initialize(      

    HINSTANCE hinst,     DWORD dwVersion,     REFGUID rguid );


Instance handle to the application or dynamic-link library (DLL) that is creating the DirectInputDevice object. Microsoft?DirectInput? uses this value to determine whether the application or DLL has been certified and to establish any special behaviors that might be necessary for backward compatibility.

It is an error for a DLL to pass the handle to the parent application. For example, a Microsoft ActiveX?control embedded in a Web page that uses DirectInput must pass its own instance handle, and not the handle to the browser. This ensures that DirectInput recognizes the control and can enable any special behaviors that may be necessary.
Version number of DirectInput for which the application is designed. This value is normally DIRECTINPUT_VERSION. Passing the version number of a previous version causes DirectInput to emulate that version.
Reference to (C++) or address of (C) the globally unique identifier (GUID) identifying the instance of the device with which the interface should be associated. The IDirectInput8::EnumDevices method can be used to determine which instance GUIDs are supported by the system.

Return Value

If the method succeeds, the return value is DI_OK or S_FALSE. If the method returns S_FALSE, the device had already been initialized with the instance GUID passed in though rGUID.

If the method fails, the return value can be one of the following error values:

DIERR_ACQUIREDThe operation cannot be performed while the device is acquired.
DIERR_DEVICENOTREGThe device or device instance is not registered with DirectInput. This value is equal to the REGDB_E_CLASSNOTREG standard Component Object Model (COM) return value.


If this method fails, the underlying object should be considered to be in an indeterminate state and must be reinitialized before use.

© 2002 Microsoft Corporation. All rights reserved.