167 lines
5.4 KiB
C
167 lines
5.4 KiB
C
/*
|
||
* COMMON.H
|
||
*
|
||
* Structures and definitions applicable to all OLE 2.0 UI dialogs.
|
||
*
|
||
* Copyright (c)1992 Microsoft Corporation, All Right Reserved
|
||
*/
|
||
|
||
|
||
#ifndef _COMMON_H_
|
||
#define _COMMON_H_
|
||
|
||
|
||
//Macros to handle control message packing between Win16 and Win32
|
||
#ifdef WIN32
|
||
|
||
#ifndef COMMANDPARAMS
|
||
#define COMMANDPARAMS(wID, wCode, hWndMsg) \
|
||
WORD wID = LOWORD(wParam); \
|
||
WORD wCode = HIWORD(wParam); \
|
||
HWND hWndMsg = (HWND)(UINT)lParam;
|
||
#endif //COMMANDPARAMS
|
||
|
||
#ifndef SendCommand
|
||
#define SendCommand(hWnd, wID, wCode, hControl) \
|
||
SendMessage(hWnd, WM_COMMAND, MAKELONG(wID, wCode) \
|
||
, (LPARAM)hControl)
|
||
#endif //SendCommand
|
||
|
||
#else //Start !WIN32
|
||
|
||
#ifndef COMMANDPARAMS
|
||
#define COMMANDPARAMS(wID, wCode, hWndMsg) \
|
||
WORD wID = LOWORD(wParam); \
|
||
WORD wCode = HIWORD(lParam); \
|
||
HWND hWndMsg = (HWND)(UINT)lParam;
|
||
#endif //COMMANDPARAMS
|
||
|
||
#ifndef SendCommand
|
||
#define SendCommand(hWnd, wID, wCode, hControl) \
|
||
SendMessage(hWnd, WM_COMMAND, wID \
|
||
, MAKELONG(hControl, wCode))
|
||
#endif //SendCommand
|
||
|
||
#endif //!WIN32
|
||
|
||
|
||
|
||
//Property labels used to store dialog structures and fonts
|
||
#define STRUCTUREPROP TEXT("Structure")
|
||
#define FONTPROP TEXT("Font")
|
||
|
||
|
||
/*
|
||
* Standard structure for all dialogs. This commonality lets us make
|
||
* a single piece of code that will validate this entire structure and
|
||
* perform any necessary initialization.
|
||
*/
|
||
|
||
typedef struct tagOLEUISTANDARD
|
||
{
|
||
//These IN fields are standard across all OLEUI dialog functions.
|
||
DWORD cbStruct; //Structure Size
|
||
DWORD dwFlags; //IN-OUT: Flags
|
||
HWND hWndOwner; //Owning window
|
||
LPCTSTR lpszCaption; //Dialog caption bar contents
|
||
LPFNOLEUIHOOK lpfnHook; //Hook callback
|
||
LPARAM lCustData; //Custom data to pass to hook
|
||
HINSTANCE hInstance; //Instance for customized template name
|
||
LPCTSTR lpszTemplate; //Customized template name
|
||
HRSRC hResource; //Customized template handle
|
||
} OLEUISTANDARD, *POLEUISTANDARD, FAR *LPOLEUISTANDARD;
|
||
|
||
|
||
|
||
//Function prototypes
|
||
//COMMON.C
|
||
UINT WINAPI UStandardValidation(const LPOLEUISTANDARD, const UINT, const HGLOBAL FAR *);
|
||
|
||
#ifdef WIN32
|
||
UINT WINAPI UStandardInvocation(DLGPROC, LPOLEUISTANDARD, HGLOBAL, LPTSTR);
|
||
#else
|
||
UINT WINAPI UStandardInvocation(DLGPROC, LPOLEUISTANDARD, HGLOBAL, LPCTSTR);
|
||
#endif
|
||
|
||
LPVOID WINAPI LpvStandardInit(HWND, UINT, BOOL, HFONT FAR *);
|
||
LPVOID WINAPI LpvStandardEntry(HWND, UINT, WPARAM, LPARAM, UINT FAR *);
|
||
UINT WINAPI UStandardHook(LPVOID, HWND, UINT, WPARAM, LPARAM);
|
||
void WINAPI StandardCleanup(LPVOID, HWND);
|
||
void WINAPI StandardShowDlgItem(HWND hDlg, int idControl, int nCmdShow);
|
||
|
||
|
||
//DRAWICON.C
|
||
|
||
//Structure for label and source extraction from a metafile
|
||
typedef struct tagLABELEXTRACT
|
||
{
|
||
LPTSTR lpsz;
|
||
UINT Index; // index in lpsz (so we can retrieve 2+ lines)
|
||
DWORD PrevIndex; // index of last line (so we can mimic word wrap)
|
||
|
||
union
|
||
{
|
||
UINT cch; //Length of label for label extraction
|
||
UINT iIcon; //Index of icon in source extraction.
|
||
} u;
|
||
|
||
//For internal use in enum procs
|
||
BOOL fFoundIconOnly;
|
||
BOOL fFoundSource;
|
||
BOOL fFoundIndex;
|
||
} LABELEXTRACT, FAR * LPLABELEXTRACT;
|
||
|
||
|
||
//Structure for extracting icons from a metafile (CreateIcon parameters)
|
||
typedef struct tagICONEXTRACT
|
||
{
|
||
HICON hIcon; //Icon created in the enumeration proc.
|
||
|
||
/*
|
||
* Since we want to handle multitasking well we have the caller
|
||
* of the enumeration proc instantiate these variables instead of
|
||
* using statics in the enum proc (which would be bad).
|
||
*/
|
||
BOOL fAND;
|
||
HGLOBAL hMemAND; //Enumeration proc allocates and copies
|
||
} ICONEXTRACT, FAR * LPICONEXTRACT;
|
||
|
||
|
||
//Structure to use to pass info to EnumMetafileDraw
|
||
typedef struct tagDRAWINFO
|
||
{
|
||
RECT Rect;
|
||
BOOL fIconOnly;
|
||
} DRAWINFO, FAR * LPDRAWINFO;
|
||
|
||
|
||
int CALLBACK EXPORT EnumMetafileIconDraw(HDC, HANDLETABLE FAR *, METARECORD FAR *, int, LPARAM);
|
||
int CALLBACK EXPORT EnumMetafileExtractLabel(HDC, HANDLETABLE FAR *, METARECORD FAR *, int, LPLABELEXTRACT);
|
||
int CALLBACK EXPORT EnumMetafileExtractIcon(HDC, HANDLETABLE FAR *, METARECORD FAR *, int, LPICONEXTRACT);
|
||
int CALLBACK EXPORT EnumMetafileExtractIconSource(HDC, HANDLETABLE FAR *, METARECORD FAR *, int, LPLABELEXTRACT);
|
||
|
||
|
||
//Shared globals: our instance, registered messages used from all dialogs and clipboard
|
||
// formats used by the PasteSpecial dialog
|
||
extern HINSTANCE ghInst;
|
||
|
||
extern UINT uMsgHelp;
|
||
extern UINT uMsgEndDialog;
|
||
extern UINT uMsgBrowse;
|
||
extern UINT uMsgChangeIcon;
|
||
extern UINT uMsgFileOKString;
|
||
extern UINT uMsgCloseBusyDlg;
|
||
|
||
extern UINT cfObjectDescriptor;
|
||
extern UINT cfLinkSrcDescriptor;
|
||
extern UINT cfEmbedSource;
|
||
extern UINT cfEmbeddedObject;
|
||
extern UINT cfLinkSource;
|
||
extern UINT cfOwnerLink;
|
||
extern UINT cfFileName;
|
||
|
||
//Standard control identifiers
|
||
#define ID_NULL 98
|
||
|
||
#endif //_COMMON_H_
|
||
|