typedef struct IDirectDraw {
	void (*QueryInterface) (void *this_, void* riid, LPVOID  * ppvObj);
	ULONG (*AddRef) (void *this_);
	ULONG (*Release) (void *this_);
	void (*Compact)(void *this_);
	void (*CreateClipper)(void *this_, LPDIRECTDRAWCLIPPER * a, IUnknown  * b);
	void (*CreatePalette)(void *this_, LPPALETTEENTRY a, LPDIRECTDRAWPALETTE * b, IUnknown  * c);
	void (*CreateSurface)(void *this_, void* a, LPDIRECTDRAWSURFACE  * b, IUnknown  * c);
  void (*DuplicateSurface)(void *this_, LPDIRECTDRAWSURFACE a, LPDIRECTDRAWSURFACE  * b);
  void (*EnumDisplayModes)(void *this_, DWORD, void* a, LPVOID b, void* c);
  void (*EnumSurfaces)(void *this_, DWORD, void* a, LPVOID b, void* c);
  void (*FlipToGDISurface)(void *this_);
  void (*GetCaps)(void *this_, void* a, void* b);
  void (*GetDisplayMode)(void *this_, void* a);
  void (*GetFourCCCodes)(void *this_, LPDWORD a, LPDWORD b);
  void (*GetGDISurface)(void *this_, LPDIRECTDRAWSURFACE  * a);
  void (*GetMonitorFrequency)(void *this_, LPDWORD a);
  void (*GetScanLine)(void *this_, LPDWORD a);
  void (*GetVerticalBlankStatus)(void *this_, LPBOOL a);
  void (*Initialize)(void *this_, GUID  * a);
  void (*RestoreDisplayMode)(void *this_);
  void (*SetCooperativeLevel)(void *this_, HWND a, DWORD b);
  void (*SetDisplayMode)(void *this_, DWORD a, DWORD b, DWORD c);
  void (*WaitForVerticalBlank)(void *this_, DWORD a, HANDLE b);
};
typedef IDirectDraw * LPDIRECTDRAW;