summaryrefslogtreecommitdiffstats
path: root/public/sdk/inc/dciman.h
diff options
context:
space:
mode:
Diffstat (limited to 'public/sdk/inc/dciman.h')
-rw-r--r--public/sdk/inc/dciman.h151
1 files changed, 151 insertions, 0 deletions
diff --git a/public/sdk/inc/dciman.h b/public/sdk/inc/dciman.h
new file mode 100644
index 000000000..6a409c5a4
--- /dev/null
+++ b/public/sdk/inc/dciman.h
@@ -0,0 +1,151 @@
+/****************************************************************************
+
+ DCIMAN.H
+
+ Copyright (C) 1993-1994 Microsoft Corporation. All Rights Reserved.
+
+ DCIMAN 1.0 client interface definitions
+
+ ***************************************************************************/
+
+#ifndef _INC_DCIMAN
+#define _INC_DCIMAN
+
+#ifdef __cplusplus
+ #define __inline inline
+ extern "C" {
+#endif
+
+/****************************************************************************
+ ***************************************************************************/
+
+#include "dciddi.h" // interface to the DCI provider
+
+/****************************************************************************
+ ***************************************************************************/
+
+DECLARE_HANDLE(HWINWATCH); // context handle for WinWatch instance
+
+/****************************************************************************
+ ***************************************************************************/
+
+extern HDC WINAPI DCIOpenProvider(void);
+extern void WINAPI DCICloseProvider(HDC hdc);
+
+extern int WINAPI DCICreatePrimary(HDC hdc, LPDCISURFACEINFO FAR *lplpSurface);
+extern int WINAPI DCICreateOffscreen(HDC hdc, DWORD dwCompression, DWORD dwRedMask,
+ DWORD dwGreenMask, DWORD dwBlueMask, DWORD dwWidth, DWORD dwHeight,
+ DWORD dwDCICaps, DWORD dwBitCount, LPDCIOFFSCREEN FAR *lplpSurface);
+extern int WINAPI DCICreateOverlay(HDC hdc, LPVOID lpOffscreenSurf,
+ LPDCIOVERLAY FAR *lplpSurface);
+extern int WINAPI DCIEnum(HDC hdc, LPRECT lprDst, LPRECT lprSrc, LPVOID lpFnCallback,
+ LPVOID lpContext);
+extern DCIRVAL WINAPI DCISetSrcDestClip(LPDCIOFFSCREEN pdci, LPRECT srcrc,
+ LPRECT destrc, LPRGNDATA prd );
+
+extern HWINWATCH WINAPI WinWatchOpen(HWND hwnd);
+extern void WINAPI WinWatchClose(HWINWATCH hWW);
+
+// API changed to copy region data instead of return pointer to it
+extern UINT WINAPI WinWatchGetClipList(HWINWATCH hWW, LPRECT prc,
+ UINT size, LPRGNDATA prd);
+extern BOOL WINAPI WinWatchDidStatusChange(HWINWATCH hWW);
+
+extern DWORD WINAPI GetWindowRegionData(HWND hwnd, DWORD size, LPRGNDATA prd);
+extern DWORD WINAPI GetDCRegionData(HDC hdc, DWORD size, LPRGNDATA prd);
+
+
+#define WINWATCHNOTIFY_START 0
+#define WINWATCHNOTIFY_STOP 1
+#define WINWATCHNOTIFY_DESTROY 2
+#define WINWATCHNOTIFY_CHANGING 3
+#define WINWATCHNOTIFY_CHANGED 4
+typedef void (CALLBACK *WINWATCHNOTIFYPROC)(HWINWATCH hww, HWND hwnd, DWORD code, LPARAM lParam);
+
+extern BOOL WINAPI WinWatchNotify(HWINWATCH hWW, WINWATCHNOTIFYPROC NotifyCallback,
+ LPARAM NotifyParam );
+
+#ifdef WIN32
+/****************************************************************************
+ helper functions to call DCIMAN16.DLL
+ ***************************************************************************/
+extern void WINAPI DCIEndAccess(LPDCISURFACEINFO pdci);
+extern DCIRVAL WINAPI DCIBeginAccess(LPDCISURFACEINFO pdci, int x, int y, int dx, int dy);
+extern void WINAPI DCIDestroy(LPDCISURFACEINFO pdci);
+extern DCIRVAL WINAPI DCIDraw(LPDCIOFFSCREEN pdci);
+extern DCIRVAL WINAPI DCISetClipList(LPDCIOFFSCREEN pdci, LPRGNDATA prd);
+extern DCIRVAL WINAPI DCISetDestination(LPDCIOFFSCREEN pdci, LPRECT dst, LPRECT src);
+
+
+#else
+
+extern int WINAPI DCISendCommand(HDC hdc, VOID FAR *pcmd, int nSize, VOID FAR * FAR * lplpOut);
+
+/****************************************************************************
+ helper macros to call DCI callbacks
+ ***************************************************************************/
+__inline void DCIDestroy(LPDCISURFACEINFO pdci)
+{
+ if( pdci->DestroySurface != NULL ) {
+ pdci->DestroySurface(pdci);
+ }
+}
+
+__inline void DCIEndAccess(LPDCISURFACEINFO pdci)
+{
+ if( pdci->EndAccess != NULL ) {
+ pdci->EndAccess(pdci);
+ }
+}
+
+__inline DCIRVAL DCIBeginAccess(LPDCISURFACEINFO pdci, int x, int y, int dx, int dy)
+{
+ RECT rc;
+
+ if( pdci->BeginAccess != NULL ) {
+ rc.left=x;
+ rc.top=y;
+ rc.right = rc.left+dx;
+ rc.bottom = rc.top+dy;
+ return pdci->BeginAccess(pdci, &rc);
+ } else {
+ return DCI_OK;
+ }
+}
+
+__inline DCIRVAL DCIDraw(LPDCIOFFSCREEN pdci)
+{
+ if( pdci->Draw != NULL ) {
+ return pdci->Draw(pdci);
+ } else {
+ return DCI_OK;
+ }
+}
+
+__inline DCIRVAL DCISetClipList(LPDCIOFFSCREEN pdci, LPRGNDATA prd)
+{
+ if( pdci->SetClipList != NULL ) {
+ return pdci->SetClipList(pdci, prd);
+ } else {
+ return DCI_OK;
+ }
+}
+
+__inline DCIRVAL DCISetDestination(LPDCIOFFSCREEN pdci, LPRECT dst, LPRECT src)
+{
+ if( pdci->SetDestination != NULL ) {
+ return pdci->SetDestination(pdci, dst, src);
+ } else {
+ return DCI_OK;
+ }
+}
+#endif
+
+/****************************************************************************
+ ***************************************************************************/
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif // _INC_DCIMAN