Función DdQueryDirectDrawObject (ddrawgdi.h)
[Esta función está sujeta a cambios con cada revisión del sistema operativo. En su lugar, use Microsoft DirectDraw y Microsoft Direct3DAPIs; estas API aíslan las aplicaciones de estos cambios en el sistema operativo y ocultan muchas otras dificultades implicadas en la interacción directa con los controladores de pantalla.
Contenedor para la función NtGdiDdQueryDirectDrawObject y consulta una representación en modo kernel creada previamente para las funcionalidades.
GdiEntry2 se define como alias para esta función.
Sintaxis
BOOL DdQueryDirectDrawObject(
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
LPDDHALINFO pHalInfo,
LPDDHAL_DDCALLBACKS pDDCallbacks,
LPDDHAL_DDSURFACECALLBACKS pDDSurfaceCallbacks,
LPDDHAL_DDPALETTECALLBACKS pDDPaletteCallbacks,
LPD3DHAL_CALLBACKS pD3dCallbacks,
LPD3DHAL_GLOBALDRIVERDATA pD3dDriverData,
LPDDHAL_DDEXEBUFCALLBACKS pD3dBufferCallbacks,
LPDDSURFACEDESC pD3dTextureFormats,
LPDWORD pdwFourCC,
LPVIDMEM pvmList
);
Parámetros
pDirectDrawGlobal
Puntero a un objeto DirectDraw en modo de usuario para el que se creó previamente un objeto del lado kernel con DdCreateDirectDrawObject.
pHalInfo
Puntero a una estructura DDHALINFO que se rellenará con las funcionalidades del dispositivo. Consulte la documentación de DDK para obtener más información.
pDDCallbacks
Puntero a una tabla de punteros de devolución de llamada. La tabla se rellena con punteros a funciones dentro de Gdi32.dll que imitan un controlador de pantalla de DirectDraw. Esta tabla de devolución de llamada es idéntica a la estructura de DDHAL_DDCALLBACKS, que se asigna a la estructura de DD_CALLBACKS que se describe en la documentación de DDK.
pDDSurfaceCallbacks
Puntero a una tabla de punteros de devolución de llamada de superficie. La tabla se rellena con punteros a funciones dentro de Gdi32.dll que imitan un controlador de pantalla de DirectDraw. Esta tabla de devolución de llamada es idéntica a la estructura de DDHAL_DDSURFACECALLBACKS, que se asigna a la estructura de DD_SURFACECALLBACKS que se describe en la documentación de DDK.
pDDPaletteCallbacks
Puntero a una tabla de punteros de devolución de llamada de paleta. La tabla se rellena con punteros a funciones dentro de Gdi32.dll que imitan un controlador de pantalla de DirectDraw. Esta tabla de devolución de llamada es idéntica a la estructura de DDHAL_DDPALETTECALLBACKS, que se asigna a la estructura de DD_PALETTECALLBACKS que se describe en la documentación de DDK.
pD3dCallbacks
Puntero a una tabla de punteros de devolución de llamada de Direct3D. La tabla se rellena con punteros a funciones dentro de Gdi32.dll que imitan a un controlador de pantalla direct3D. Esta tabla de devolución de llamada es idéntica a la estructura de D3DHAL_CALLBACKS que se describe en la documentación de DDK.
pD3dDriverData
Puntero a D3DHAL_GLOBALDRIVERDATA datos, como se describe en la documentación de DDK.
pD3dBufferCallbacks
Puntero a una tabla de punteros de devolución de llamada. La tabla se rellena con punteros a funciones dentro de Gdi32.dll que imitan a un controlador de pantalla direct3D. Esta tabla de devolución de llamada es idéntica a la estructura de DDHAL_DDEXEBUFCALLBACKS, que se asigna a la estructura de DD_D3DBUFCALLBACKS descrita en la documentación de DDK, excepto que los miembros XxxD3DBuffer de DD_D3DBUFCALLBACKS se reemplazan por XxxExecuteBuffer en DDHAL_DDEXEBUFCALLBACKS.
pD3dTextureFormats
Puntero a una matriz de estructuras DDSURFACEDESC que definen el conjunto de formatos de textura permitidos.
pdwFourCC
Puntero a una lista de formatos de superficie de cuatro caracteres (FOURCC) admitidos. Puede ser NULL.
pvmList
Puntero a una lista de descriptores de montón de memoria de vídeo. Puede ser NULL. Este parámetro no se usa porque la administración de memoria de vídeo se controla completamente dentro del modo kernel.
Valor devuelto
Si se ejecuta correctamente, esta función devuelve TRUE; de lo contrario, devuelve FALSE.
Comentarios
Una llamada a esta función está diseñada para realizarse en un proceso de dos pasos. En el primer paso, pdwFourCC, pvmList y pD3dTextureFormats deben ser NULL y DdQueryDirectDrawObject rellenará DDHALINFO. ddCaps. dwNumFourCCCodes, DDHALINFO. vmiData. dwNumHeaps y D3DHAL_GLOBALDRIVERDATA. dwNumTextureFormats con el número de entradas que se van a devolver. En la segunda llamada, el autor de la llamada debe asignar matrices del tamaño indicado y pasar esos punteros en lugar de valores NULL en los parámetros pdwFourCC, pvmList y pD3dTextureFormats . A continuación, las matrices se rellenarán con los datos adecuados.
Se recomienda que las aplicaciones usen las API de DirectDraw y Direct3D para crear y administrar objetos de dispositivo gráficos. Estas construcciones abstraen el proceso de creación de dispositivos de forma simplificada e independiente del sistema operativo.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | ddrawgdi.h |