mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
5.6 KiB
111 lines
5.6 KiB
/*
|
|
* 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_
|
|
|
|
|