Annotation of mstools/ole20/samples/ole2ui/common.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * COMMON.H
                      3:  *
                      4:  * Structures and definitions applicable to all OLE 2.0 UI dialogs.
                      5:  *
                      6:  * Copyright (c)1992 Microsoft Corporation, All Right Reserved
                      7:  */
                      8: 
                      9: 
                     10: #ifndef _COMMON_H_
                     11: #define _COMMON_H_
                     12: 
                     13: 
                     14: //Macros to handle control message packing between Win16 and Win32
                     15: #ifdef WIN32
                     16: 
                     17: #ifndef COMMANDPARAMS
                     18: #define COMMANDPARAMS(wID, wCode, hWndMsg)                          \
                     19:     WORD        wID     = LOWORD(wParam);                           \
                     20:     WORD        wCode   = HIWORD(wParam);                           \
                     21:     HWND        hWndMsg = (HWND)(UINT)lParam;
                     22: #endif  //COMMANDPARAMS
                     23: 
                     24: #ifndef SendCommand
                     25: #define SendCommand(hWnd, wID, wCode, hControl)                     \
                     26:             SendMessage(hWnd, WM_COMMAND, MAKELONG(wID, wCode)      \
                     27:                         , (LPARAM)hControl)
                     28: #endif  //SendCommand
                     29: 
                     30: #else   //Start !WIN32
                     31: 
                     32: #ifndef COMMANDPARAMS
                     33: #define COMMANDPARAMS(wID, wCode, hWndMsg)                          \
                     34:     WORD        wID     = LOWORD(wParam);                           \
                     35:     WORD        wCode   = HIWORD(lParam);                           \
                     36:     HWND        hWndMsg = (HWND)(UINT)lParam;
                     37: #endif  //COMMANDPARAMS
                     38: 
                     39: #ifndef SendCommand
                     40: #define SendCommand(hWnd, wID, wCode, hControl)                     \
                     41:             SendMessage(hWnd, WM_COMMAND, wID                       \
                     42:                         , MAKELONG(hControl, wCode))
                     43: #endif  //SendCommand
                     44: 
                     45: #endif  //!WIN32
                     46: 
                     47: 
                     48: 
                     49: //Property labels used to store dialog structures and fonts
                     50: #define STRUCTUREPROP       "Structure"
                     51: #define FONTPROP            "Font"
                     52: 
                     53: 
                     54: /*
                     55:  * Standard structure for all dialogs.  This commonality lets us make
                     56:  * a single piece of code that will validate this entire structure and
                     57:  * perform any necessary initialization.
                     58:  */
                     59: 
                     60: typedef struct tagOLEUISTANDARD
                     61:     {
                     62:     //These IN fields are standard across all OLEUI dialog functions.
                     63:     DWORD           cbStruct;       //Structure Size
                     64:     DWORD           dwFlags;        //IN-OUT:  Flags
                     65:     HWND            hWndOwner;      //Owning window
                     66:     LPCSTR          lpszCaption;    //Dialog caption bar contents
                     67:     LPFNOLEUIHOOK   lpfnHook;       //Hook callback
                     68:     LPARAM          lCustData;      //Custom data to pass to hook
                     69:     HINSTANCE       hInstance;      //Instance for customized template name
                     70:     LPCSTR          lpszTemplate;   //Customized template name
                     71:     HRSRC           hResource;      //Customized template handle
                     72:     } OLEUISTANDARD, *POLEUISTANDARD, FAR *LPOLEUISTANDARD;
                     73: 
                     74: 
                     75: 
                     76: //Function prototypes
                     77: //COMMON.C
                     78: UINT  WINAPI  UStandardValidation(const LPOLEUISTANDARD, const UINT, const HGLOBAL FAR *);
                     79: UINT  WINAPI  UStandardInvocation(DLGPROC, LPOLEUISTANDARD, HGLOBAL, LPCSTR);
                     80: LPVOID WINAPI LpvStandardInit(HWND, UINT, BOOL, HFONT FAR *);
                     81: LPVOID WINAPI LpvStandardEntry(HWND, UINT, WPARAM, LPARAM, UINT FAR *);
                     82: UINT WINAPI   UStandardHook(LPVOID, HWND, UINT, WPARAM, LPARAM);
                     83: void WINAPI   StandardCleanup(LPVOID, HWND);
                     84: void WINAPI   StandardShowDlgItem(HWND hDlg, int idControl, int nCmdShow);
                     85: 
                     86: 
                     87: //DRAWICON.C
                     88: 
                     89: //Structure for label and source extraction from a metafile
                     90: typedef struct tagLABELEXTRACT
                     91:     {
                     92:     LPSTR       lpsz;
                     93:     UINT        Index;      // index in lpsz (so we can retrieve 2+ lines)
                     94:     DWORD       PrevIndex;  // index of last line (so we can mimic word wrap)
                     95: 
                     96:     union
                     97:         {
                     98:         UINT    cch;        //Length of label for label extraction
                     99:         UINT    iIcon;      //Index of icon in source extraction.
                    100:         } u;
                    101: 
                    102:     //For internal use in enum procs
                    103:     BOOL        fFoundIconOnly;
                    104:     BOOL        fFoundSource;
                    105:     BOOL        fFoundIndex;
                    106:     } LABELEXTRACT, FAR * LPLABELEXTRACT;
                    107: 
                    108: 
                    109: //Structure for extracting icons from a metafile (CreateIcon parameters)
                    110: typedef struct tagICONEXTRACT
                    111:     {
                    112:     HICON       hIcon;          //Icon created in the enumeration proc.
                    113: 
                    114:     /*
                    115:      * Since we want to handle multitasking well we have the caller
                    116:      * of the enumeration proc instantiate these variables instead of
                    117:      * using statics in the enum proc (which would be bad).
                    118:      */
                    119:     BOOL        fAND;
                    120:     HGLOBAL     hMemAND;        //Enumeration proc allocates and copies
                    121:     } ICONEXTRACT, FAR * LPICONEXTRACT;
                    122: 
                    123: 
                    124: //Structure to use to pass info to EnumMetafileDraw
                    125: typedef struct tagDRAWINFO
                    126:     {
                    127:     RECT     Rect;
                    128:     BOOL     fIconOnly;
                    129:     } DRAWINFO, FAR * LPDRAWINFO;
                    130: 
                    131: 
                    132: int CALLBACK EXPORT EnumMetafileIconDraw(HDC, HANDLETABLE FAR *, METARECORD FAR *, int, LPARAM);
                    133: int CALLBACK EXPORT EnumMetafileExtractLabel(HDC, HANDLETABLE FAR *, METARECORD FAR *, int, LPLABELEXTRACT);
                    134: int CALLBACK EXPORT EnumMetafileExtractIcon(HDC, HANDLETABLE FAR *, METARECORD FAR *, int, LPICONEXTRACT);
                    135: int CALLBACK EXPORT EnumMetafileExtractIconSource(HDC, HANDLETABLE FAR *, METARECORD FAR *, int, LPLABELEXTRACT);
                    136: 
                    137: 
                    138: //Shared globals:  our instance, registered messages used from all dialogs and clipboard
                    139: // formats used by the PasteSpecial dialog
                    140: extern HINSTANCE  ghInst;
                    141: 
                    142: extern UINT       uMsgHelp;
                    143: extern UINT       uMsgEndDialog;
                    144: extern UINT       uMsgBrowse;
                    145: extern UINT       uMsgChangeIcon;
                    146: extern UINT       uMsgFileOKString;
                    147: extern UINT       uMsgCloseBusyDlg;
                    148: 
                    149: extern UINT       cfObjectDescriptor;
                    150: extern UINT       cfLinkSrcDescriptor;
                    151: extern UINT       cfEmbedSource;
                    152: extern UINT       cfEmbeddedObject;
                    153: extern UINT       cfLinkSource;
                    154: extern UINT       cfOwnerLink;
                    155: extern UINT       cfFileName;
                    156: 
                    157: //Standard control identifiers
                    158: #define ID_NULL                         98
                    159: 
                    160: #endif //_COMMON_H_

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.