  'com demos
  'base DirectDraw interface

  extern virtual

    class IDirectDraw
    =================
    '
    /*** IUnknown methods ***/
    ! QueryInterface '(THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
    ! AddRef '(THIS)   PURE;
    ! Release '(THIS) PURE;
    /*** IDirectDraw methods ***/
    ! Compact '(THIS) PURE;
    ! CreateClipper '(THIS_ DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR * ) PURE;
    ! CreatePalette '(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR * ) PURE;
    ! CreateSurface '(THIS_  LPDDSURFACEDESC, LPDIRECTDRAWSURFACE FAR *, IUnknown FAR *) PURE;
    ! DuplicateSurface '( THIS_ LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE FAR * ) PURE;
    ! EnumDisplayModes '( THIS_ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ) PURE;
    ! EnumSurfaces '(THIS_ DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ) PURE;
    ! FlipToGDISurface '(THIS) PURE;
    ! GetCaps '( THIS_ LPDDCAPS, LPDDCAPS) PURE;
    ! GetDisplayMode '( THIS_ LPDDSURFACEDESC) PURE;
    ! GetFourCCCodes '(THIS_  LPDWORD, LPDWORD ) PURE;
    ! GetGDISurface '(THIS_ LPDIRECTDRAWSURFACE FAR *) PURE;
    ! GetMonitorFrequency '(THIS_ LPDWORD) PURE;
    ! GetScanLine '(THIS_ LPDWORD) PURE;
    ! GetVerticalBlankStatus '(THIS_ LPBOOL ) PURE;
    ! Initialize '(THIS_ GUID FAR *) PURE;
    ! RestoreDisplayMode '(THIS) PURE;
    ! SetCooperativeLevel '(THIS_ HWND, DWORD) PURE;
    ! SetDisplayMode '(THIS_ DWORD, DWORD,DWORD) PURE;
    ! WaitForVerticalBlank '(THIS_ DWORD, HANDLE ) PURE;
    end class
'#recordof idirectdraw

end extern