Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

292 lines
6.0 KiB

/*++
Copyright (c) 1990-1995 Microsoft Corporation
Module Name:
apilayer.h
Abstract:
This module contains all API layer's definiton
Author:
02-Jan-1996 Tue 13:28:08 created -by- Daniel Chou (danielc)
[Environment:]
NT Windows - Common Printer Driver UI DLL
[Notes:]
Revision History:
--*/
#ifndef CPSUI_APILAYER
#define CPSUI_APILAYER
//================= Internal Data structures =============================
//
#define TABTABLE_COUNT (MAXPROPPAGES + 2)
#define TAB_MODE_INIT 0
#define TAB_MODE_FIND 1
#define TAB_MODE_INSERT 2
#define TAB_MODE_DELETE 3
#define TAB_MODE_DELETE_ALL 4
#define GET_REAL_INSIDX(ptbl) ((ptbl)->Table[(ptbl)->InsIdx])
typedef struct _TABTABLE {
struct _TABTABLE *pTabTable;
HWND hWndTab;
WNDPROC WndProc;
HANDLE hRootPage;
WORD cTab;
WORD InsIdx;
SHORT Table[TABTABLE_COUNT];
} TABTABLE, *PTABTABLE;
#define CPSUIPAGE_ID 0x43444955
#define CPF_ROOT 0x00000001
#define CPF_PARENT 0x00000002
#define CPF_PFNPROPSHEETUI 0x00000004
#define CPF_COMPROPSHEETUI 0x00000008
#define CPF_USER_GROUP 0x00000010
#define CPF_DLL 0x00000020
#define CPF_CALLER_HPSPAGE 0x00000040
#define CPF_ANSI_CALL 0x00000080
#define CPF_DONE_PROPSHEET 0x00000100
#define CPF_DONE_PROPSHEETPROC 0x00000200
#define CPF_SHOW_PROPSHEET 0x00000400
#define CPF_DOCPROP 0x00000800
#define CPF_ADVDOCPROP 0x00001000
#define CPF_PRINTERPROP 0x00002000
typedef struct _CPSUIPAGE;
typedef struct _ROOTINFO {
HWND hDlg;
LPDWORD pResult;
PTABTABLE pTabTable;
struct _CPSUIPAGE *pStartPage;
WORD cPage;
WORD cCPSUIPage;
} ROOTINFO, *PROOTINFO;
typedef struct _PFNINFO {
HINSTANCE hInst;
PFNPROPSHEETUI pfnPSUI;
LPARAM lParamInit;
DWORD UserData;
DWORD Result;
} PFNINFO, *PPFNINFO;
typedef struct _CPSUIINFO {
PTVWND pTVWnd;
LONG Result;
LONG TVPageIdx;
LONG StdPageIdx;
} CPSUIINFO, PCPSUIINFO;
typedef struct _GPINFO {
DWORD dwReserved[5];
} GPINFO, *PGPINFO;
typedef struct _HPAGEINFO {
HWND hDlg;
DLGPROC DlgProc;
LPFNPSPCALLBACK pspCB;
LPARAM lParam;
HICON hIcon;
DWORD dwSize;
} HPAGEINFO, *PHPAGEINFO;
typedef struct _CPSUIPAGE {
DWORD ID;
DWORD cLock;
DWORD Flags;
HANDLE hCPSUIPage;
union {
struct _CPSUIPAGE *pChild;
HPROPSHEETPAGE hPage;
} DUMMYUNIONNAME;
union {
ROOTINFO RootInfo;
PFNINFO pfnInfo;
CPSUIINFO CPSUIInfo;
GPINFO GPInfo;
HPAGEINFO hPageInfo;
} DUMMYUNIONNAME2;
struct _CPSUIPAGE *pParent;
struct _CPSUIPAGE *pPrev;
struct _CPSUIPAGE *pNext;
} CPSUIPAGE, *PCPSUIPAGE;
typedef BOOL (CALLBACK *CPSUIPAGEENUMPROC)(PCPSUIPAGE pRootPage,
PCPSUIPAGE pCPSUIPage,
LPARAM lParam);
//
// Local structure
//
typedef struct _PSPEX {
PROPSHEETPAGE psp;
PSPINFO pspInfo;
} PSPEX, *PPSPEX;
typedef struct _PSHINFO {
WCHAR CaptionName[MAX_RES_STR_CHARS];
} PSHINFO, *PPSHINFO;
typedef struct _PAGEPROCINFO {
union {
HPROPSHEETPAGE *phPage;
HANDLE *pHandle;
} DUMMYUNIONNAME;
WORD cPage;
WORD iPage;
} PAGEPROCINFO, *PPAGEPROCINFO;
typedef struct _INSPAGEIDXINFO {
PCPSUIPAGE pCPSUIPage;
PTABTABLE pTabTable;
} INSPAGEIDXINFO, *PINSPAGEIDXINFO;
//
// Function prototypes
//
BOOL
CALLBACK
SetInsPageIdxProc(
PCPSUIPAGE pRootPage,
PCPSUIPAGE pCPSUIPage,
LPARAM lParam
);
DWORD
FilterException(
HANDLE hPage,
LPEXCEPTION_POINTERS pExceptionPtr
);
BOOL
EnumCPSUIPagesSeq(
PCPSUIPAGE pRootPage,
PCPSUIPAGE pCPSUIPage,
CPSUIPAGEENUMPROC CPSUIPageEnumProc,
LPARAM lParam
);
BOOL
EnumCPSUIPages(
PCPSUIPAGE pRootPage,
PCPSUIPAGE pCPSUIPage,
CPSUIPAGEENUMPROC CPSUIPageEnumProc,
LPARAM lParam
);
LONG
SetPSUIPageTitle(
PCPSUIPAGE pRootPage,
PCPSUIPAGE pPage,
LPWSTR pTitle,
BOOL AnsiCall
);
LONG
SetPSUIPageIcon(
PCPSUIPAGE pRootPage,
PCPSUIPAGE pPage,
HICON hIcon
);
PCPSUIPAGE
AddCPSUIPage(
PCPSUIPAGE pParent,
HANDLE hInsert,
BYTE Mode
);
BOOL
AddPropSheetPage(
PCPSUIPAGE pRootPage,
PCPSUIPAGE pCPSUIPage,
LPPROPSHEETPAGE pPSPage,
HPROPSHEETPAGE hPSPage
);
LONG
AddComPropSheetPage(
PCPSUIPAGE pCPSUIPage,
UINT PageIdx
);
LONG
AddComPropSheetUI(
PCPSUIPAGE pRootPage,
PCPSUIPAGE pCPSUIPage,
PCOMPROPSHEETUI pCPSUI
);
LONG
InsertPSUIPage(
PCPSUIPAGE pRootPage,
PCPSUIPAGE pParentPage,
HANDLE hInsert,
PINSERTPSUIPAGE_INFO pInsPageInfo,
BOOL AnsiCall
);
LONG
CALLBACK
CPSUICallBack(
HANDLE hComPropSheet,
UINT Function,
LPARAM lParam1,
LPARAM lParam2
);
LONG
DoComPropSheet(
PCPSUIPAGE pRootPage,
PPROPSHEETUI_INFO_HEADER pPSUIInfoHdr
);
LONG
DoCommonPropertySheetUI(
HWND hWndOwner,
PFNPROPSHEETUI pfnPropSheetUI,
LPARAM lParam,
LPDWORD pResult,
BOOL AnsiCall
);
#endif // CPSUI_APILAYER