Geoff Chappell - Software Analyst
CURRENT WORK ITEM - PREVIEW ONLY
IID_IObjectWithBackReferences | {321A6A6A-D61F-4BF3-97Ae-14BE2986BB36} |
The IObjectWithBackReferences methods are (as ordered in the virtual function table after the IUnknown methods):
Offset | Method |
---|---|
0x0C | RemoveBackReferences |
with prototype:
HRESULT RemoveBackReferences (VOID);
This interface is very plausibly not thought of by Microsoft as belonging to the shell. Even in SHELL32, several classes implement the interface just by inheriting a trivial base class:
class CObjectWithBackReferences : public IObjectWithBackReferences { public: HRESULT STDMETHODCALLTYPE RemoveBackReferences (VOID) { return S_OK; }; };
This same mechanism is used for all the implementations in IEFRAME.DLL and SyncCenter.dll, with the strong suggestion that all acquire something like the preceding code from a shared header file.
Non-trivial implementations are known only in SHELL32.DLL and MSOE.DLL. SOMETHING STILL TO BE WRITTEN ABOUT THOSE IMPLEMENTATIONS
The RemoveBackReferences method is often (even typically) called indirectly, through the SHLWAPI function IUnknown_RemoveBackReferences.
The IObjectWithBackReferences interface is implemented in SHELL32.DLL in the version 6.00 from Windows Vista, and higher.
Though new for Windows Vista, this interface is not documented by Microsoft in the January 2007 edition of the Software Development Kit (SDK) for Windows Vista.