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
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database