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_
|
|||
|
|
|||
|
|