📄 oledlg.h
字号:
#define OLEUI_ERR_FINDTEMPLATEFAILURE 110 // Initialization errors
#define OLEUI_ERR_LOADTEMPLATEFAILURE 111
#define OLEUI_ERR_DIALOGFAILURE 112
#define OLEUI_ERR_LOCALMEMALLOC 113
#define OLEUI_ERR_GLOBALMEMALLOC 114
#define OLEUI_ERR_LOADSTRING 115
#define OLEUI_ERR_STANDARDMAX 116 // Start here for specific errors.
// Miscellaneous utility functions.
STDAPI_(BOOL) OleUIAddVerbMenuW(LPOLEOBJECT lpOleObj, LPCWSTR lpszShortType,
HMENU hMenu, UINT uPos, UINT uIDVerbMin, UINT uIDVerbMax,
BOOL bAddConvert, UINT idConvert, HMENU *lphMenu);
STDAPI_(BOOL) OleUIAddVerbMenuA(LPOLEOBJECT lpOleObj, LPCSTR lpszShortType,
HMENU hMenu, UINT uPos, UINT uIDVerbMin, UINT uIDVerbMax,
BOOL bAddConvert, UINT idConvert, HMENU *lphMenu);
#ifdef UNICODE
#define OleUIAddVerbMenu OleUIAddVerbMenuW
#else
#define OleUIAddVerbMenu OleUIAddVerbMenuA
#endif
/////////////////////////////////////////////////////////////////////////////
// INSERT OBJECT DIALOG
typedef struct tagOLEUIINSERTOBJECTW
{
// These IN fields are standard across all OLEUI dialog functions.
DWORD cbStruct; // Structure Size
DWORD dwFlags; // IN-OUT: Flags
HWND hWndOwner; // Owning window
LPCWSTR lpszCaption; // Dialog caption bar contents
LPFNOLEUIHOOK lpfnHook; // Hook callback
LPARAM lCustData; // Custom data to pass to hook
HINSTANCE hInstance; // Instance for customized template name
LPCWSTR lpszTemplate; // Customized template name
HRSRC hResource; // Customized template handle
// Specifics for OLEUIINSERTOBJECT.
CLSID clsid; // OUT: Return space for class ID
LPWSTR lpszFile; // IN-OUT: Filename for inserts or links
UINT cchFile; // IN: Size of lpszFile buffer: MAX_PATH
UINT cClsidExclude; // IN: CLSIDs in lpClsidExclude
LPCLSID lpClsidExclude; // IN: List of CLSIDs to exclude from listing.
// Specific to create objects if flags say so
IID iid; // IN: Requested interface on creation.
DWORD oleRender; // IN: Rendering option
LPFORMATETC lpFormatEtc; // IN: Desired format
LPOLECLIENTSITE lpIOleClientSite; // IN: Site to be use for the object.
LPSTORAGE lpIStorage; // IN: Storage used for the object
LPVOID *ppvObj; // OUT: Where the object is returned.
SCODE sc; // OUT: Result of creation calls.
HGLOBAL hMetaPict; // OUT: metafile aspect (METAFILEPICT)
} OLEUIINSERTOBJECTW, *POLEUIINSERTOBJECTW, *LPOLEUIINSERTOBJECTW;
typedef struct tagOLEUIINSERTOBJECTA
{
// These IN fields are standard across all OLEUI dialog functions.
DWORD cbStruct; // Structure Size
DWORD dwFlags; // IN-OUT: Flags
HWND hWndOwner; // Owning window
LPCSTR lpszCaption; // Dialog caption bar contents
LPFNOLEUIHOOK lpfnHook; // Hook callback
LPARAM lCustData; // Custom data to pass to hook
HINSTANCE hInstance; // Instance for customized template name
LPCSTR lpszTemplate; // Customized template name
HRSRC hResource; // Customized template handle
// Specifics for OLEUIINSERTOBJECT.
CLSID clsid; // OUT: Return space for class ID
LPSTR lpszFile; // IN-OUT: Filename for inserts or links
UINT cchFile; // IN: Size of lpszFile buffer: MAX_PATH
UINT cClsidExclude; // IN: CLSIDs in lpClsidExclude
LPCLSID lpClsidExclude; // IN: List of CLSIDs to exclude from listing.
// Specific to create objects if flags say so
IID iid; // IN: Requested interface on creation.
DWORD oleRender; // IN: Rendering option
LPFORMATETC lpFormatEtc; // IN: Desired format
LPOLECLIENTSITE lpIOleClientSite; // IN: Site to be use for the object.
LPSTORAGE lpIStorage; // IN: Storage used for the object
LPVOID *ppvObj; // OUT: Where the object is returned.
SCODE sc; // OUT: Result of creation calls.
HGLOBAL hMetaPict; // OUT: metafile aspect (METAFILEPICT)
} OLEUIINSERTOBJECTA, *POLEUIINSERTOBJECTA, *LPOLEUIINSERTOBJECTA;
STDAPI_(UINT) OleUIInsertObjectW(LPOLEUIINSERTOBJECTW);
STDAPI_(UINT) OleUIInsertObjectA(LPOLEUIINSERTOBJECTA);
#ifdef UNICODE
#define tagOLEUIINSERTOBJECT tagOLEUIINSERTOBJECTW
#define OLEUIINSERTOBJECT OLEUIINSERTOBJECTW
#define POLEUIINSERTOBJECT POLEUIINSERTOBJECTW
#define LPOLEUIINSERTOBJECT LPOLEUIINSERTOBJECTW
#define OleUIInsertObject OleUIInsertObjectW
#else
#define tagOLEUIINSERTOBJECT tagOLEUIINSERTOBJECTA
#define OLEUIINSERTOBJECT OLEUIINSERTOBJECTA
#define POLEUIINSERTOBJECT POLEUIINSERTOBJECTA
#define LPOLEUIINSERTOBJECT LPOLEUIINSERTOBJECTA
#define OleUIInsertObject OleUIInsertObjectA
#endif
// Insert Object flags
#define IOF_SHOWHELP 0x00000001L
#define IOF_SELECTCREATENEW 0x00000002L
#define IOF_SELECTCREATEFROMFILE 0x00000004L
#define IOF_CHECKLINK 0x00000008L
#define IOF_CHECKDISPLAYASICON 0x00000010L
#define IOF_CREATENEWOBJECT 0x00000020L
#define IOF_CREATEFILEOBJECT 0x00000040L
#define IOF_CREATELINKOBJECT 0x00000080L
#define IOF_DISABLELINK 0x00000100L
#define IOF_VERIFYSERVERSEXIST 0x00000200L
#define IOF_DISABLEDISPLAYASICON 0x00000400L
#define IOF_HIDECHANGEICON 0x00000800L
#define IOF_SHOWINSERTCONTROL 0x00001000L
#define IOF_SELECTCREATECONTROL 0x00002000L
// Insert Object specific error codes
#define OLEUI_IOERR_LPSZFILEINVALID (OLEUI_ERR_STANDARDMAX+0)
#define OLEUI_IOERR_LPSZLABELINVALID (OLEUI_ERR_STANDARDMAX+1)
#define OLEUI_IOERR_HICONINVALID (OLEUI_ERR_STANDARDMAX+2)
#define OLEUI_IOERR_LPFORMATETCINVALID (OLEUI_ERR_STANDARDMAX+3)
#define OLEUI_IOERR_PPVOBJINVALID (OLEUI_ERR_STANDARDMAX+4)
#define OLEUI_IOERR_LPIOLECLIENTSITEINVALID (OLEUI_ERR_STANDARDMAX+5)
#define OLEUI_IOERR_LPISTORAGEINVALID (OLEUI_ERR_STANDARDMAX+6)
#define OLEUI_IOERR_SCODEHASERROR (OLEUI_ERR_STANDARDMAX+7)
#define OLEUI_IOERR_LPCLSIDEXCLUDEINVALID (OLEUI_ERR_STANDARDMAX+8)
#define OLEUI_IOERR_CCHFILEINVALID (OLEUI_ERR_STANDARDMAX+9)
/////////////////////////////////////////////////////////////////////////////
// PASTE SPECIAL DIALOG
// The OLEUIPASTEFLAG enumeration is used by the OLEUIPASTEENTRY structure.
//
// OLEUIPASTE_ENABLEICON: If the container does not specify this flag for
// the entry in the OLEUIPASTEENTRY array passed as input to
// OleUIPasteSpecial, the DisplayAsIcon button will be unchecked and
// disabled when the the user selects the format that corresponds to
// the entry.
//
// OLEUIPASTE_PASTEONLY: Indicates that the entry in the OLEUIPASTEENTRY
// array is valid for pasting only.
//
// OLEUIPASTE_PASTE: Indicates that the entry in the OLEUIPASTEENTRY array
// is valid for pasting. It may also be valid for linking if any of
// the following linking flags are specified.
//
// If the entry in the OLEUIPASTEENTRY array is valid for linking, the
// following flags indicate which link types are acceptable by OR'ing
// together the appropriate OLEUIPASTE_LINKTYPE<#> values.
//
// These values correspond as follows to the array of link types passed to
// OleUIPasteSpecial:
//
// OLEUIPASTE_LINKTYPE1 = arrLinkTypes[0]
// OLEUIPASTE_LINKTYPE2 = arrLinkTypes[1]
// OLEUIPASTE_LINKTYPE3 = arrLinkTypes[2]
// OLEUIPASTE_LINKTYPE4 = arrLinkTypes[3]
// OLEUIPASTE_LINKTYPE5 = arrLinkTypes[4]
// OLEUIPASTE_LINKTYPE6 = arrLinkTypes[5]
// OLEUIPASTE_LINKTYPE7 = arrLinkTypes[6]
// OLEUIPASTE_LINKTYPE8 = arrLinkTypes[7]
//
// where,
// UINT arrLinkTypes[8] is an array of registered clipboard formats for
// linking. A maximium of 8 link types are allowed.
typedef enum tagOLEUIPASTEFLAG
{
OLEUIPASTE_ENABLEICON = 2048, // enable display as icon
OLEUIPASTE_PASTEONLY = 0,
OLEUIPASTE_PASTE = 512,
OLEUIPASTE_LINKANYTYPE = 1024,
OLEUIPASTE_LINKTYPE1 = 1,
OLEUIPASTE_LINKTYPE2 = 2,
OLEUIPASTE_LINKTYPE3 = 4,
OLEUIPASTE_LINKTYPE4 = 8,
OLEUIPASTE_LINKTYPE5 = 16,
OLEUIPASTE_LINKTYPE6 = 32,
OLEUIPASTE_LINKTYPE7 = 64,
OLEUIPASTE_LINKTYPE8 = 128
} OLEUIPASTEFLAG;
// OLEUIPASTEENTRY structure
//
// An array of OLEUIPASTEENTRY entries is specified for the PasteSpecial
// dialog box. Each entry includes a FORMATETC which specifies the
// formats that are acceptable, a string that is to represent the format
// in the dialog's list box, a string to customize the result text of the
// dialog and a set of flags from the OLEUIPASTEFLAG enumeration. The
// flags indicate if the entry is valid for pasting only, linking only or
// both pasting and linking.
typedef struct tagOLEUIPASTEENTRYW
{
FORMATETC fmtetc; // Format that is acceptable.
LPCWSTR lpstrFormatName;// String that represents the format
// to the user. %s is replaced by the
// full user type name of the object.
LPCWSTR lpstrResultText;// String to customize the result text
// of the dialog when the user
// selects the format correspoding to
// this entry. Any %s in this string
// is replaced by the the application
// name or FullUserTypeName of the
// object on the clipboard.
DWORD dwFlags; // Values from OLEUIPASTEFLAG enum
DWORD dwScratchSpace; // Scratch space used internally.
} OLEUIPASTEENTRYW, *POLEUIPASTEENTRYW, *LPOLEUIPASTEENTRYW;
typedef struct tagOLEUIPASTEENTRYA
{
FORMATETC fmtetc; // Format that is acceptable.
LPCSTR lpstrFormatName;// String that represents the format
// to the user. %s is replaced by the
// full user type name of the object.
LPCSTR lpstrResultText;// String to customize the result text
// of the dialog when the user
// selects the format correspoding to
// this entry. Any %s in this string
// is replaced by the the application
// name or FullUserTypeName of the
// object on the clipboard.
DWORD dwFlags; // Values from OLEUIPASTEFLAG enum
DWORD dwScratchSpace; // Scratch space used internally.
} OLEUIPASTEENTRYA, *POLEUIPASTEENTRYA, *LPOLEUIPASTEENTRYA;
#ifdef UNICODE
#define tagOLEUIPASTEENTRY tagOLEUIPASTEENTRYW
#define OLEUIPASTEENTRY OLEUIPASTEENTRYW
#define POLEUIPASTEENTRY POLEUIPASTEENTRYW
#define LPOLEUIPASTEENTRY LPOLEUIPASTEENTRYW
#else
#define tagOLEUIPASTEENTRY tagOLEUIPASTEENTRYA
#define OLEUIPASTEENTRY OLEUIPASTEENTRYA
#define POLEUIPASTEENTRY POLEUIPASTEENTRYA
#define LPOLEUIPASTEENTRY LPOLEUIPASTEENTRYA
#endif
// Maximum number of link types
#define PS_MAXLINKTYPES 8
typedef struct tagOLEUIPASTESPECIALW
{
// These IN fields are standard across all OLEUI dialog functions.
DWORD cbStruct; // Structure Size
DWORD dwFlags; // IN-OUT: Flags
HWND hWndOwner; // Owning window
LPCWSTR lpszCaption; // Dialog caption bar contents
LPFNOLEUIHOOK lpfnHook; // Hook callback
LPARAM lCustData; // Custom data to pass to hook
HINSTANCE hInstance; // Instance for customized template name
LPCWSTR lpszTemplate; // Customized template name
HRSRC hResource; // Customized template handle
// Specifics for OLEUIPASTESPECIAL.
LPDATAOBJECT lpSrcDataObj; // IN-OUT: Source IDataObject* on the clipboard
// If lpSrcDataObj is NULL when OleUIPasteSpecial is called, then
// OleUIPasteSpecial will attempt to retrieve a pointer to an
// IDataObject from the clipboard. If OleUIPasteSpecial succeeds
// then it is the caller's responsibility to free the IDataObject
// returned in lpSrcDataObj.
LPOLEUIPASTEENTRYW arrPasteEntries;// IN: Array of acceptable formats
int cPasteEntries; // IN: No. of OLEUIPASTEENTRY array entries
UINT FAR* arrLinkTypes; // IN: List of acceptable link types
int cLinkTypes; // IN: Number of link types
UINT cClsidExclude; // IN: Number of CLSIDs in lpClsidExclude
LPCLSID lpClsidExclude; // IN: List of CLSIDs to exclude from list.
int nSelectedIndex; // OUT: Index that the user selected
BOOL fLink; // OUT: Indicates if Paste or PasteLink
HGLOBAL hMetaPict; // OUT: Handle to Metafile containing icon
SIZEL sizel; // OUT: size of object/link in its source
// may be 0,0 if different display
// aspect is chosen.
} OLEUIPASTESPECIALW, *POLEUIPASTESPECIALW, *LPOLEUIPASTESPECIALW;
typedef struct tagOLEUIPASTESPECIALA
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -