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

1.1       root        1: /*
                      2:  * PASTESPL.H
                      3:  *
                      4:  * Internal definitions, structures, and function prototypes for the
                      5:  * OLE 2.0 UI Paste Special dialog.
                      6:  *
                      7:  * Copyright (c)1992 Microsoft Corporation, All Right Reserved
                      8:  */
                      9: 
                     10: #ifndef _PASTESPL_H_
                     11: #define _PASTESPL_H_
                     12: 
                     13: #ifndef RC_INVOKED
                     14: #pragma message ("INCLUDING PASTESPL.H from " __FILE__)
                     15: #endif  /* RC_INVOKED */
                     16: 
                     17: 
                     18: // Length of buffers to hold the strings 'Unknown Type', Unknown Source'
                     19: //   and 'the application which created it'
                     20: #define PS_UNKNOWNSTRLEN               100
                     21: 
                     22: //Property label used to store clipboard viewer chain information
                     23: #define NEXTCBVIEWER        "NextCBViewer"
                     24: 
                     25: //Internally used structure
                     26: typedef struct tagPASTESPECIAL
                     27: {
                     28:     //Keep this item first as the Standard* functions depend on it here.
                     29:     LPOLEUIPASTESPECIAL  lpOPS;                //Original structure passed.
                     30: 
                     31:     /*
                     32:      * What we store extra in this structure besides the original caller's
                     33:      * pointer are those fields that we need to modify during the life of
                     34:      * the dialog but that we don't want to change in the original structure
                     35:      * until the user presses OK.
                     36:      */
                     37: 
                     38:     DWORD                dwFlags;              // Local copy of paste special flags
                     39: 
                     40:     int                  nPasteListCurSel;     // Save the selection the user made last
                     41:     int                  nPasteLinkListCurSel; //    in the paste and pastelink lists
                     42:     int                  nSelectedIndex;       // Index in arrPasteEntries[] corresponding to user selection
                     43:     BOOL                 fLink;                // Indicates if Paste or PasteLink was selected by user
                     44: 
                     45:     HGLOBAL              hBuff;                // Scratch Buffer for building up strings
                     46:     char                 szUnknownType[PS_UNKNOWNSTRLEN];    // Buffer for 'Unknown Type' string
                     47:     char                 szUnknownSource[PS_UNKNOWNSTRLEN];  // Buffer for 'Unknown Source' string
                     48:     char                 szAppName[OLEUI_CCHKEYMAX]; // Application name of Source. Used in the result text
                     49:                                                      //   when Paste is selected. Obtained using clsidOD.
                     50: 
                     51:     // Information obtained from OBJECTDESCRIPTOR. This information is accessed when the Paste
                     52:     //    radio button is selected.
                     53:     CLSID                clsidOD;              // ClassID of source
                     54:     LPSTR                szFullUserTypeNameOD; // Full User Type Name
                     55:     LPSTR                szSourceOfDataOD;     // Source of Data
                     56:     BOOL                 fSrcAspectIconOD;     // Does Source specify DVASPECT_ICON?
                     57:     BOOL                 fSrcOnlyIconicOD;     // Does Source specify OLEMISC_ONLYICONIC?
                     58:     HGLOBAL              hMetaPictOD;          // Metafile containing icon and icon title
                     59:     HGLOBAL              hObjDesc;             // Handle to OBJECTDESCRIPTOR structure from which the
                     60:                                                //   above information is obtained
                     61: 
                     62:     // Information obtained from LINKSRCDESCRIPTOR. This infomation is accessed when the PasteLink
                     63:     //   radio button is selected.
                     64:     CLSID                clsidLSD;             // ClassID of source
                     65:     LPSTR                szFullUserTypeNameLSD;// Full User Type Name
                     66:     LPSTR                szSourceOfDataLSD;    // Source of Data
                     67:     BOOL                 fSrcAspectIconLSD;    // Does Source specify DVASPECT_ICON?
                     68:     BOOL                 fSrcOnlyIconicLSD;    // Does Source specify OLEMISC_ONLYICONIC?
                     69:     HGLOBAL              hMetaPictLSD;         // Metafile containing icon and icon title
                     70:     HGLOBAL              hLinkSrcDesc;         // Handle to LINKSRCDESCRIPTOR structure from which the
                     71:                                                //   above information is obtained
                     72: 
                     73: } PASTESPECIAL, *PPASTESPECIAL, FAR *LPPASTESPECIAL;
                     74: 
                     75: // Data corresponding to each list item. A pointer to this structure is attached to each
                     76: //   Paste\PasteLink list box item using LB_SETITEMDATA
                     77: typedef struct tagPASTELISTITEMDATA
                     78: {
                     79:    int                   nPasteEntriesIndex;   // Index of arrPasteEntries[] corresponding to list item
                     80:    BOOL                  fCntrEnableIcon;      // Does calling application (called container here)
                     81:                                                //    specify OLEUIPASTE_ENABLEICON for this item?
                     82: } PASTELISTITEMDATA, *PPASTELISTITEMDATA, FAR *LPPASTELISTITEMDATA;
                     83: 
                     84: 
                     85: //Internal function prototypes
                     86: //PASTESPL.C
                     87: BOOL CALLBACK EXPORT PasteSpecialDialogProc(HWND, UINT, WPARAM, LPARAM);
                     88: BOOL            FPasteSpecialInit(HWND hDlg, WPARAM, LPARAM);
                     89: BOOL            FTogglePasteType(HWND, LPPASTESPECIAL, DWORD);
                     90: void            ChangeListSelection(HWND, LPPASTESPECIAL, HWND);
                     91: void            EnableDisplayAsIcon(HWND, LPPASTESPECIAL);
                     92: void            ToggleDisplayAsIcon(HWND, LPPASTESPECIAL);
                     93: void            ChangeIcon(HWND, LPPASTESPECIAL);
                     94: void            SetPasteSpecialHelpResults(HWND, LPPASTESPECIAL);
                     95: BOOL            FAddPasteListItem(HWND, BOOL, int, LPPASTESPECIAL, LPMALLOC, LPSTR);
                     96: BOOL            FFillPasteList(HWND, LPPASTESPECIAL);
                     97: BOOL            FFillPasteLinkList(HWND, LPPASTESPECIAL);
                     98: BOOL            FHasPercentS(LPCSTR, LPPASTESPECIAL);
                     99: HGLOBAL         AllocateScratchMem(LPPASTESPECIAL);
                    100: void            FreeListData(HWND);
                    101: 
                    102: #endif  //_PASTESPL_H_
                    103: 

unix.superglobalmegacorp.com

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