111 lines
5.6 KiB
C
111 lines
5.6 KiB
C
/*
|
||
* PASTESPL.H
|
||
*
|
||
* Internal definitions, structures, and function prototypes for the
|
||
* OLE 2.0 UI Paste Special dialog.
|
||
*
|
||
* Copyright (c)1992 Microsoft Corporation, All Right Reserved
|
||
*/
|
||
|
||
#ifndef _PASTESPL_H_
|
||
#define _PASTESPL_H_
|
||
|
||
#ifndef RC_INVOKED
|
||
#pragma message ("INCLUDING PASTESPL.H from " __FILE__)
|
||
#endif /* RC_INVOKED */
|
||
|
||
|
||
// Length of buffers to hold the strings 'Unknown Type', Unknown Source'
|
||
// and 'the application which created it'
|
||
#define PS_UNKNOWNSTRLEN 100
|
||
|
||
//Property label used to store clipboard viewer chain information
|
||
#define NEXTCBVIEWER TEXT("NextCBViewer")
|
||
|
||
//Internally used structure
|
||
typedef struct tagPASTESPECIAL
|
||
{
|
||
//Keep this item first as the Standard* functions depend on it here.
|
||
LPOLEUIPASTESPECIAL lpOPS; //Original structure passed.
|
||
|
||
/*
|
||
* What we store extra in this structure besides the original caller's
|
||
* pointer are those fields that we need to modify during the life of
|
||
* the dialog but that we don't want to change in the original structure
|
||
* until the user presses OK.
|
||
*/
|
||
|
||
DWORD dwFlags; // Local copy of paste special flags
|
||
|
||
int nPasteListCurSel; // Save the selection the user made last
|
||
int nPasteLinkListCurSel; // in the paste and pastelink lists
|
||
int nSelectedIndex; // Index in arrPasteEntries[] corresponding to user selection
|
||
BOOL fLink; // Indicates if Paste or PasteLink was selected by user
|
||
|
||
HGLOBAL hBuff; // Scratch Buffer for building up strings
|
||
TCHAR szUnknownType[PS_UNKNOWNSTRLEN]; // Buffer for 'Unknown Type' string
|
||
TCHAR szUnknownSource[PS_UNKNOWNSTRLEN]; // Buffer for 'Unknown Source' string
|
||
TCHAR szAppName[OLEUI_CCHKEYMAX]; // Application name of Source. Used in the result text
|
||
// when Paste is selected. Obtained using clsidOD.
|
||
|
||
// Information obtained from OBJECTDESCRIPTOR. This information is accessed when the Paste
|
||
// radio button is selected.
|
||
CLSID clsidOD; // ClassID of source
|
||
SIZEL sizelOD; // sizel transfered in
|
||
// ObjectDescriptor
|
||
LPTSTR szFullUserTypeNameOD; // Full User Type Name
|
||
LPTSTR szSourceOfDataOD; // Source of Data
|
||
BOOL fSrcAspectIconOD; // Does Source specify DVASPECT_ICON?
|
||
BOOL fSrcOnlyIconicOD; // Does Source specify OLEMISC_ONLYICONIC?
|
||
HGLOBAL hMetaPictOD; // Metafile containing icon and icon title
|
||
HGLOBAL hObjDesc; // Handle to OBJECTDESCRIPTOR structure from which the
|
||
// above information is obtained
|
||
|
||
// Information obtained from LINKSRCDESCRIPTOR. This infomation is accessed when the PasteLink
|
||
// radio button is selected.
|
||
CLSID clsidLSD; // ClassID of source
|
||
SIZEL sizelLSD; // sizel transfered in
|
||
// LinkSrcDescriptor
|
||
LPTSTR szFullUserTypeNameLSD;// Full User Type Name
|
||
LPTSTR szSourceOfDataLSD; // Source of Data
|
||
BOOL fSrcAspectIconLSD; // Does Source specify DVASPECT_ICON?
|
||
BOOL fSrcOnlyIconicLSD; // Does Source specify OLEMISC_ONLYICONIC?
|
||
HGLOBAL hMetaPictLSD; // Metafile containing icon and icon title
|
||
HGLOBAL hLinkSrcDesc; // Handle to LINKSRCDESCRIPTOR structure from which the
|
||
// above information is obtained
|
||
|
||
BOOL fClipboardChanged; // Has clipboard content changed
|
||
// if so bring down dlg after
|
||
// ChangeIcon dlg returns.
|
||
} PASTESPECIAL, *PPASTESPECIAL, FAR *LPPASTESPECIAL;
|
||
|
||
// Data corresponding to each list item. A pointer to this structure is attached to each
|
||
// Paste\PasteLink list box item using LB_SETITEMDATA
|
||
typedef struct tagPASTELISTITEMDATA
|
||
{
|
||
int nPasteEntriesIndex; // Index of arrPasteEntries[] corresponding to list item
|
||
BOOL fCntrEnableIcon; // Does calling application (called container here)
|
||
// specify OLEUIPASTE_ENABLEICON for this item?
|
||
} PASTELISTITEMDATA, *PPASTELISTITEMDATA, FAR *LPPASTELISTITEMDATA;
|
||
|
||
|
||
//Internal function prototypes
|
||
//PASTESPL.C
|
||
BOOL CALLBACK EXPORT PasteSpecialDialogProc(HWND, UINT, WPARAM, LPARAM);
|
||
BOOL FPasteSpecialInit(HWND hDlg, WPARAM, LPARAM);
|
||
BOOL FTogglePasteType(HWND, LPPASTESPECIAL, DWORD);
|
||
void ChangeListSelection(HWND, LPPASTESPECIAL, HWND);
|
||
void EnableDisplayAsIcon(HWND, LPPASTESPECIAL);
|
||
void ToggleDisplayAsIcon(HWND, LPPASTESPECIAL);
|
||
void ChangeIcon(HWND, LPPASTESPECIAL);
|
||
void SetPasteSpecialHelpResults(HWND, LPPASTESPECIAL);
|
||
BOOL FAddPasteListItem(HWND, BOOL, int, LPPASTESPECIAL, LPMALLOC, LPTSTR, LPTSTR);
|
||
BOOL FFillPasteList(HWND, LPPASTESPECIAL);
|
||
BOOL FFillPasteLinkList(HWND, LPPASTESPECIAL);
|
||
BOOL FHasPercentS(LPCTSTR, LPPASTESPECIAL);
|
||
HGLOBAL AllocateScratchMem(LPPASTESPECIAL);
|
||
void FreeListData(HWND);
|
||
|
||
#endif //_PASTESPL_H_
|
||
|
||
|