|
OleRegEnumFormatEtc
Enumerates data formats that an OLE object server has registered in the
registration database. An object application or object handler calls this function to
obtain an enumeration of those formats. Developers of custom DLL object
applications use this function to emulate the behavior of the default object handler.
HRESULT OleRegEnumFormatEtc(
REFCLSID clsid,
| //Reference to class identifier
| DWORD dwDirection,
| //Value specifying data formats
| LPENUMFORMATETC * ppenumFormatetc
| //Pointer to returned format information
| );
|
|
Parameters
clsid
Specifies the class whose formats are being requested.
dwDirection
Specifies whether to enumerate formats that can be passed to IDataObject::GetData or formats that can be passed to IDataObject::SetData. Valid values are taken from the enumeration DATADIR.
ppenumFormatetc
Points to where to return the enumeration.
Return Values
S_OK
Indicates the enumerator was returned successfully.
E_OUTOFMEMORY
Indicates there is insufficient memory to complete the operation.
REGDB_E_CLASSNOTREG
Indicates there is no CLSID registered for the class object.
REGDB_E_READREGDB
Indicates there was an error reading the registry.
OLE_E_REGDB_KEY
Indicates the DataFormats/GetSet key is missing from the registry.
Comments
Object applications can ask OLE to enumerate supported data formats in one of
two ways. One way is to call OleRegEnumFormatEtc. The other is to return OLE_S_USEREG in response to calls by the default object
handler to IDataObject::EnumFormatEtc. OLE_S_USEREG instructs the default handler to call OleRegEnumFormatEtc. Because DLL object applications cannot return OLE_S_USEREG, they must call OleRegEnumFormatEtc rather than delegating the job to the object handler.
The OleRegEnumFormatEtc function and its sibling functions, OleRegGetUserType, OleRegGetMiscStatus, and OleRegEnumVerbs, provide a way for developers of custom DLL object applications to emulate
the behavior of OLE's default object handler in getting information about objects
from the registry. By using these functions, you avoid the considerable work
of writing your own, and the pitfalls inherent in working directly in the
registry. In addition, you get future enhancements and optimizations of these
functions without having to code them yourself.
See Also
IDataObject::EnumFormatEtc
Related LinksSoftware for Delphi and C++ Builder developers Software for Visual Studio .NET developers Software for Visual Basic 6 developers Delphi Tips&Tricks
MegaDetailed.NET
TMS Scripter Studio Pro components for Delphi/C++Builder
More Online Helps Win32 Programmer's Reference (win32.hlp) Win32 Multimedia Programmer's Reference (mmedia.hlp) Microsoft Windows Pen API Programmer's Reference (penapi.hlp) Microsoft Windows Sockets 2 Reference (sock2.hlp) Microsoft Windows Telephony API (TAPI) Programmer's Reference (sock2.hlp) Unix Manual Pages
|