📄 objidl.idl
字号:
typedef [unique] IPersistFile *LPPERSISTFILE;
HRESULT IsDirty
(
void
);
HRESULT Load
(
[in] LPCOLESTR pszFileName,
[in] DWORD dwMode
);
HRESULT Save
(
[in, unique] LPCOLESTR pszFileName,
[in] BOOL fRemember
);
HRESULT SaveCompleted
(
[in, unique] LPCOLESTR pszFileName
);
HRESULT GetCurFile
(
[out] LPOLESTR *ppszFileName
);
}
[
object,
uuid(0000010a-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IPersistStorage : IPersist
{
typedef [unique] IPersistStorage *LPPERSISTSTORAGE;
HRESULT IsDirty
(
void
);
HRESULT InitNew
(
[in, unique] IStorage *pStg
);
HRESULT Load
(
[in, unique] IStorage *pStg
);
HRESULT Save
(
[in, unique] IStorage *pStgSave,
[in] BOOL fSameAsLoad
);
HRESULT SaveCompleted
(
[in, unique] IStorage *pStgNew
);
HRESULT HandsOffStorage
(
void
);
}
[
object,
uuid(0000000a-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface ILockBytes : IUnknown
{
typedef [unique] ILockBytes *LPLOCKBYTES;
[local]
HRESULT ReadAt(
[in] ULARGE_INTEGER ulOffset,
[out, size_is(cb), length_is(*pcbRead)]
void *pv,
[in] ULONG cb,
[out] ULONG *pcbRead);
[call_as(ReadAt)]
HRESULT _stdcall RemoteReadAt(
[in] ULARGE_INTEGER ulOffset,
[out, size_is(cb), length_is(*pcbRead)]
byte *pv,
[in] ULONG cb,
[out] ULONG *pcbRead);
[local]
HRESULT WriteAt(
[in] ULARGE_INTEGER ulOffset,
[in, size_is(cb)] void const *pv,
[in] ULONG cb,
[out] ULONG *pcbWritten);
[call_as(WriteAt)]
HRESULT RemoteWriteAt(
[in] ULARGE_INTEGER ulOffset,
[in, size_is(cb)] byte const *pv,
[in] ULONG cb,
[out] ULONG *pcbWritten);
HRESULT Flush();
HRESULT SetSize(
[in] ULARGE_INTEGER cb);
HRESULT LockRegion(
[in] ULARGE_INTEGER libOffset,
[in] ULARGE_INTEGER cb,
[in] DWORD dwLockType);
HRESULT UnlockRegion(
[in] ULARGE_INTEGER libOffset,
[in] ULARGE_INTEGER cb,
[in] DWORD dwLockType);
HRESULT Stat(
[out] STATSTG *pstatstg,
[in] DWORD grfStatFlag);
}
[
object,
uuid(00000103-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IEnumFORMATETC : IUnknown
{
typedef [unique] IEnumFORMATETC *LPENUMFORMATETC;
typedef struct tagDVTARGETDEVICE {
DWORD tdSize;
WORD tdDriverNameOffset;
WORD tdDeviceNameOffset;
WORD tdPortNameOffset;
WORD tdExtDevmodeOffset;
[size_is(tdSize - sizeof(DWORD) - 4*sizeof(WORD))]
BYTE tdData[];
}DVTARGETDEVICE;
typedef CLIPFORMAT *LPCLIPFORMAT;
typedef struct tagFORMATETC {
CLIPFORMAT cfFormat;
[unique] DVTARGETDEVICE * ptd;
DWORD dwAspect;
LONG lindex;
DWORD tymed;
}FORMATETC, *LPFORMATETC;
[local]
HRESULT Next(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched )]
FORMATETC *rgelt,
[out] ULONG *pceltFetched);
[call_as(Next)]
HRESULT RemoteNext(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched )]
FORMATETC *rgelt,
[out] ULONG *pceltFetched);
HRESULT Skip(
[in] ULONG celt);
HRESULT Reset();
HRESULT Clone(
[out] IEnumFORMATETC **ppenum);
}
[
object,
uuid(00000105-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IEnumSTATDATA : IUnknown
{
typedef [unique] IEnumSTATDATA *LPENUMSTATDATA;
//Advise Flags
typedef enum tagADVF
{
ADVF_NODATA = 1,
ADVF_PRIMEFIRST = 2,
ADVF_ONLYONCE = 4,
ADVF_DATAONSTOP = 64,
ADVFCACHE_NOHANDLER = 8,
ADVFCACHE_FORCEBUILTIN = 16,
ADVFCACHE_ONSAVE = 32
} ADVF;
// Stats for data; used by several enumerations and by at least one
// implementation of IDataAdviseHolder; if a field is not used, it
// will be NULL.
typedef struct tagSTATDATA
{ // field used by:
FORMATETC formatetc; // EnumAdvise, EnumData (cache), EnumFormats
DWORD advf; // EnumAdvise, EnumData (cache)
[unique] IAdviseSink * pAdvSink; // EnumAdvise
DWORD dwConnection; // EnumAdvise
} STATDATA;
typedef STATDATA *LPSTATDATA;
[local]
HRESULT Next(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATDATA *rgelt,
[out] ULONG *pceltFetched);
[call_as(Next)]
HRESULT RemoteNext(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATDATA *rgelt,
[out] ULONG *pceltFetched);
HRESULT Skip(
[in] ULONG celt);
HRESULT Reset();
HRESULT Clone(
[out] IEnumSTATDATA **ppenum);
}
[
object,
uuid(00000012-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IRootStorage : IUnknown
{
typedef [unique] IRootStorage *LPROOTSTORAGE;
HRESULT SwitchToFile
(
[in] LPOLESTR pszFile
);
}
/****************************************************************************
* Notification Interfaces
****************************************************************************/
[
object,
uuid(0000010f-0000-0000-C000-000000000046),
#if (__midl >= 500)
async_uuid(00000150-0000-0000-C000-000000000046),
#endif
pointer_default(unique)
]
interface IAdviseSink : IUnknown
{
typedef IAdviseSink *LPADVISESINK;
typedef [v1_enum] enum tagTYMED {
TYMED_HGLOBAL = 1,
TYMED_FILE = 2,
TYMED_ISTREAM = 4,
TYMED_ISTORAGE = 8,
TYMED_GDI = 16,
TYMED_MFPICT = 32,
TYMED_ENHMF = 64,
TYMED_NULL = 0
} TYMED;
cpp_quote("#ifndef RC_INVOKED")
cpp_quote("#if _MSC_VER >= 1200")
cpp_quote("#pragma warning(push)")
cpp_quote("#endif")
cpp_quote("#pragma warning(disable:4200)")
cpp_quote("#endif")
typedef struct tagRemSTGMEDIUM {
DWORD tymed;
DWORD dwHandleType;
unsigned long pData;
unsigned long pUnkForRelease;
unsigned long cbData;
[size_is(cbData)] byte data[];
} RemSTGMEDIUM;
cpp_quote("#ifndef RC_INVOKED")
cpp_quote("#if _MSC_VER >= 1200")
cpp_quote("#pragma warning(pop)")
cpp_quote("#else")
cpp_quote("#pragma warning(default:4200)")
cpp_quote("#endif")
cpp_quote("#endif")
cpp_quote("#ifdef NONAMELESSUNION")
cpp_quote("typedef struct tagSTGMEDIUM {")
cpp_quote(" DWORD tymed;")
cpp_quote(" union {")
cpp_quote(" HBITMAP hBitmap;")
cpp_quote(" HMETAFILEPICT hMetaFilePict;")
cpp_quote(" HENHMETAFILE hEnhMetaFile;")
cpp_quote(" HGLOBAL hGlobal;")
cpp_quote(" LPOLESTR lpszFileName;")
cpp_quote(" IStream *pstm;")
cpp_quote(" IStorage *pstg;")
cpp_quote(" } u;")
cpp_quote(" IUnknown *pUnkForRelease;")
cpp_quote("}uSTGMEDIUM;")
cpp_quote("#else")
typedef struct tagSTGMEDIUM {
DWORD tymed;
[switch_type(DWORD), switch_is((DWORD) tymed)]
union
{
[case(TYMED_GDI)]
HBITMAP hBitmap;
[case(TYMED_MFPICT)]
HMETAFILEPICT hMetaFilePict;
[case(TYMED_ENHMF)]
HENHMETAFILE hEnhMetaFile;
[case(TYMED_HGLOBAL)]
HGLOBAL hGlobal;
[case(TYMED_FILE)]
LPOLESTR lpszFileName;
[case(TYMED_ISTREAM)]
IStream *pstm;
[case(TYMED_ISTORAGE)]
IStorage *pstg;
[default]
;
};
[unique] IUnknown *pUnkForRelease;
}uSTGMEDIUM;
cpp_quote("#endif /* !NONAMELESSUNION */")
//
// wireSTGMEDIUM
//
// These flags are #defined (not enumerated) in wingdi.
// We need to repeat #defines to avoid conflict in the generated file.
//
/* Object Definitions for EnumObjects() */
#define OBJ_PEN 1
#define OBJ_BRUSH 2
#define OBJ_DC 3
#define OBJ_METADC 4
#define OBJ_PAL 5
#define OBJ_FONT 6
#define OBJ_BITMAP 7
#define OBJ_REGION 8
#define OBJ_METAFILE 9
#define OBJ_MEMDC 10
#define OBJ_EXTPEN 11
#define OBJ_ENHMETADC 12
#define OBJ_ENHMETAFILE 13
typedef union _GDI_OBJECT switch( DWORD ObjectType ) u
{
case OBJ_BITMAP: wireHBITMAP hBitmap;
case OBJ_PAL: wireHPALETTE hPalette;
default: wireHGLOBAL hGeneric;
} GDI_OBJECT;
typedef struct _userSTGMEDIUM
{
union _STGMEDIUM_UNION switch( DWORD tymed ) u
{
case TYMED_NULL: ;
case TYMED_MFPICT: wireHMETAFILEPICT hMetaFilePict;
case TYMED_ENHMF: wireHENHMETAFILE hHEnhMetaFile;
case TYMED_GDI: GDI_OBJECT * hGdiHandle;
case TYMED_HGLOBAL: wireHGLOBAL hGlobal;
case TYMED_FILE: LPOLESTR lpszFileName;
case TYMED_ISTREAM: BYTE_BLOB * pstm;
case TYMED_ISTORAGE: BYTE_BLOB * pstg;
};
IUnknown * pUnkForRelease;
} userSTGMEDIUM;
typedef [unique] userSTGMEDIUM * wireSTGMEDIUM;
typedef [wire_marshal( wireSTGMEDIUM )] uSTGMEDIUM STGMEDIUM;
typedef [unique] userSTGMEDIUM * wireASYNC_STGMEDIUM;
typedef [wire_marshal( wireASYNC_STGMEDIUM )] STGMEDIUM ASYNC_STGMEDIUM;
typedef STGMEDIUM *LPSTGMEDIUM;
typedef struct _userFLAG_STGMEDIUM
{
long ContextFlags;
long fPassOwnership;
userSTGMEDIUM Stgmed;
} userFLAG_STGMEDIUM;
typedef [unique] userFLAG_STGMEDIUM * wireFLAG_STGMEDIUM;
typedef [wire_marshal( wireFLAG_STGMEDIUM )]
struct _FLAG_STGMEDIUM
{
long ContextFlags;
long fPassOwnership;
STGMEDIUM Stgmed;
} FLAG_STGMEDIUM;
[local]
void OnDataChange(
[in, unique] FORMATETC *pFormatetc,
[in, unique] STGMEDIUM *pStgmed);
[local]
void OnViewChange(
[in] DWORD dwAspect,
[in] LONG lindex);
[local]
void OnRename(
[in] IMoniker *pmk);
[local]
void OnSave();
[local]
void OnClose();
#if (__midl >= 500)
// Currently used temporary definitons.
[call_as(OnDataChange)]
HRESULT RemoteOnDataChange(
[in, unique] FORMATETC *pFormatetc,
[in, unique] ASYNC_STGMEDIUM *pStgmed);
[call_as(OnViewChange)]
HRESULT RemoteOnViewChange(
[in] DWORD dwAspect,
[in] LONG lindex);
[call_as(OnRename)]
HRESULT RemoteOnRename(
[in] IMoniker *pmk);
[call_as(OnSave)]
HRESULT RemoteOnSave(
);
#elif (__midl > 302)
// Currently used temporary definitons.
[call_as(OnDataChange), async]
HRESULT RemoteOnDataChange(
[in] IAsyncManager **ppIAM,
[in, unique] FORMATETC *pFormatetc,
[in, unique] ASYNC_STGMEDIUM *pStgmed);
[call_as(OnViewChange), async]
HRESULT RemoteOnViewChange(
[in] IAsyncManager **ppIAM,
[in] DWORD dwAspect,
[in] LONG lindex);
[call_as(OnRename), async]
HRESULT RemoteOnRename(
[in] IAsyncManager **ppIAM,
[in] IMoniker *pmk);
[call_as(OnSave), async]
HRESULT RemoteOnSave(
[in] IAsyncManager **ppIAM
);
#else
// Old definitions kept for convenience.
[call_as(OnDataChange), async]
void RemoteOnDataChange(
[in, unique] FORMATETC *pFormatetc,
[in, unique] ASYNC_STGMEDIUM *pStgmed);
[call_as(OnViewChange), async]
void RemoteOnViewChange(
[in] DWORD dwAspect,
[in] LONG lindex);
[call_as(OnRename), async]
void RemoteOnRename(
[in] IMoniker *pmk);
[call_as(OnSave), async]
void RemoteOnSave();
#endif // MIDL > 302
[call_as(OnClose)]
HRESULT RemoteOnClose();
}
[
object,
uuid(00000125-0000-0000-C000-000000000046),
#if (__midl >= 500)
async_uuid(00000151-0000-0000-C000-000000000046),
#endif
pointer_default(unique)
]
interface IAdviseSink2 : IAdviseSink
{
typedef [unique] IAdviseSink2 *LPADVISESINK2;
[local]
void OnLinkSrcChange(
[in, unique] IMoniker *pmk);
#if (__midl >= 500)
// Currently used temporary definiton
[call_as(OnLinkSrcChange)]
HRESULT RemoteOnLinkSrcChange(
[in, unique] IMoniker *pmk);
#elif (__midl > 302)
// Currently used temporary definiton
[call_as(OnLinkSrcChange), async]
HRESULT RemoteOnLinkSrcChange(
[in] IAsyncManager **ppIAM,
[in, unique] IMoniker *pmk);
#else
// Old one for convenience.
[call_as(OnLinkSrcChange), async]
void RemoteOnLinkSrcChange(
[in, unique] IMoniker *pmk);
#endif
}
[
object,
uuid(0000010e-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IDataObject : IUnknown
{
typedef [unique] IDataObject *LPDATAOBJECT;
//DATA format DIRection
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -