Ain it funny how COM always complicates things with all those long quirky data names?
OleGetClipboard to get the current clipboard contents and we examine the available formats. The main object and central theme to all OLE object transfer that includes clipboard and drag/drop is the COM object which exposes IDataObject. This interface has many member functions which we will be looking into in the sequel. In this example we just used its EnumFormatEtc to “browse” its contents, i.e. the alternative formats supported by this object. Since this is COM, an enumerator object is used for this task, IEnumFORMATETC. If you recall IEnumIDList, the enumerator used for browsing the contents of a folder, you will immediately recognize the pattern. We just call its Next method repeatedly to get each contained item, till we receive a S_FALSE return code which signifies that no more items exist. But what are those FORMATETC types? Let’s consider the enumeration of folder contents. They contain files, and the enumeration object IEnumIDList offers access to PIDLs which uniquely identify