The DirectDrawCreate function creates an instance of a DirectDraw object.
HRESULT DirectDrawCreate(
GUID FAR *lpGUID,
LPDIRECTDRAW FAR *lplpDD,
IUnknown FAR *pUnkOuter
);
DDCREATE_EMULATIONONLY | |
The DirectDraw object will use emulation for all features; it will not take advantage of any hardware supported features. | |
DDCREATE_HARDWAREONLY | |
The DirectDraw object will never emulate features not supported by the hardware. Attempts to call methods that require unsupported features will fail, returning DDERR_UNSUPPORTED. |
If the function succeeds, the return value is DD_OK.
If the function fails, the return value may be one of the following error values:
DDERR_DIRECTDRAWALREADYCREATED |
DDERR_GENERIC |
DDERR_INVALIDDIRECTDRAWGUID |
DDERR_INVALIDPARAMS |
DDERR_NODIRECTDRAWHW |
DDERR_OUTOFMEMORY |
This function attempts to initialize a DirectDraw object, and it then sets a pointer to the object if the call is successful.
On systems with multiple monitors, specifying NULL for lpGUID causes the DirectDraw object to run in emulation mode when the normal cooperative level is set. To make use of hardware acceleration on these systems, you must specify the device’s GUID. For more information, see Working with Multiple Monitors.