windows-nt/Source/XPSP1/NT/com/oleutest/letest/ole2ui/pastespl.h

111 lines
5.6 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*
* 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_