Ada计算机图形DirectX之dxdiag

----------------------------------------
-- File : dxdiag.ads                  --
-- Translator:Dongfeng.Gu,2018/10/30  --
-- Mail: [email protected]                --
-- Progress:100%                      --
----------------------------------------


with win32;                     use win32;
with win32.rpcdce;
with win32.Oleauto;
with win32.objbase;             use win32.objbase;

package dxdiag is

   DXDIAGtagDX9_SDK_VERSION : constant := 111;

   DXDIAG_E_INSUFFICIENT_BUFFER : constant := 16#8007007A#;

   CLSIDtagDXDiagProvider:constant win32.rpcdce.GUID:=(16#A65B8071#,16#3BFE#,16#4213#,(16#9A#,16#5B#,16#49#,16#1D#,16#A4#,16#46#,16#1C#,16#A7#));
   IID_IDxDiagProvider:constant win32.rpcdce.GUID:=(16#9C6B4CB0#,16#23F8#,16#49CC#,(16#A3#,16#ED#,16#45#,16#A5#,16#50#,16#00#,16#A6#,16#D2#));
   IID_IDxDiagContainer:constant win32.rpcdce.GUID:=(16#7D0F462F#,16#4064#,16#4862#,(16#BC#,16#7F#,16#93#,16#3E#,16#50#,16#58#,16#C1#,16#0F#));

   type IDxDiagProvider;
   type LPIDxDiagProvider is access all IDxDiagProvider;
   type LPLPIDxDiagProvider is access all LPIDxDiagProvider;
   subtype LPDXDIAGPROVIDER is LPIDxDiagProvider;
   subtype PDXDIAGPROVIDER is LPIDxDiagProvider;
   subtype LPLPDxDiagProvider is LPLPIDxDiagProvider;
   subtype PPDxDiagProvider is LPLPIDxDiagProvider;

   type IDxDiagContainer;
   type LPIDxDiagContainer is access all IDxDiagContainer;
   type LPLPIDxDiagContainer is access all LPIDxDiagContainer;
   subtype LPDxDiagContainer is LPIDxDiagContainer;
   subtype PDxDiagContainer is LPIDxDiagContainer;
   subtype LPLPDxDiagContainer is LPLPIDxDiagContainer;
   subtype PPDxDiagContainer is LPLPIDxDiagContainer;


   type tagDXDIAG_INIT_PARAMS is record
      dwSize: DWORD;
      dwDxDiagHeaderVersion: DWORD;
      bAllowWHQLChecks: BOOL;
      pReserved:LPVOID;
   end record;

   subtype DXDIAG_INIT_PARAMS is tagDXDIAG_INIT_PARAMS;
   type LPDXDIAG_INIT_PARAMS is access all DXDIAG_INIT_PARAMS;



   type IDxDiagProvider is record
      QueryInterface:access procedure(THIS:LPIDxDiagProvider;riid:REFIID;ppvObj:LPLPVOID) with Convention=>Stdcall;
      AddRef:access function(THIS:LPIDxDiagProvider) return ULONG with Convention=>Stdcall;
      Release:access function(THIS:LPIDxDiagProvider) return ULONG with Convention=>Stdcall;
      Initialize:access procedure(THIS:LPIDxDiagProvider;pParams:LPDXDIAG_INIT_PARAMS) with Convention=>Stdcall;
      GetRootContainer:access procedure(THIS:LPIDxDiagProvider;ppInstance:LPLPIDxDiagContainer) with Convention=>Stdcall;
   end record;



   type IDxDiagContainer is record
      QueryInterface:access procedure(THIS:LPIDxDiagContainer;riid:REFIID;ppvObj:LPLPVOID) with Convention=>Stdcall;
      AddRef:access function(THIS:LPIDxDiagContainer) return ULONG with Convention=>Stdcall;
      Release:access function(THIS:LPIDxDiagContainer) return ULONG with Convention=>Stdcall;
      GetNumberOfChildContainers:access procedure(THIS:LPIDxDiagContainer;pdwCount:LPDWORD) with Convention=>Stdcall;
      EnumChildContainerNames:access procedure(THIS:LPIDxDiagContainer;dwIndex:DWORD;pwszContainer:LPWSTR;cchContainer:DWORD) with Convention=>Stdcall;
      GetChildContainer:access procedure(THIS:LPIDxDiagContainer;pwszContainer:LPCWSTR;ppInstance:LPLPIDxDiagContainer) with Convention=>Stdcall;
      GetNumberOfProps:access procedure(THIS:LPIDxDiagContainer;pdwCount:LPDWORD) with Convention=>Stdcall;
      EnumPropNames:access procedure(THIS:LPIDxDiagContainer;dwIndex:DWORD;pwszPropName:LPWSTR;cchPropName:DWORD) with Convention=>Stdcall;
      GetProp:access procedure(THIS:LPIDxDiagContainer;pwszPropName:LPCWSTR;pvarProp:Oleauto.LPVARIANT) with Convention=>Stdcall;
   end record;


   --
   -- THE END.
   --


end dxdiag;

猜你喜欢

转载自blog.csdn.net/adacore/article/details/83536430
今日推荐