Not many C++ coders do low level OLE/COM Malibor (as you are finding out). I checked out your Catch 22 site. Looks like good stuff. I recall finding something there years ago that was useful to me when I was creating my own C Runtime to replace the one furnished by Microsoft.
Almost all C++ coders use various wrapper libraries provided by Microsoft such as MFC or ATL to deal with OLE/COM. I discovered that many years ago when I was attempting to create ActiveX Controls myself with low level COM. All this most certainly CAN BE done with low level COM and no helper libraries, but the learning curve is very, very steep, and you almost have to figure it all out yourself one small piece at a time.
COM has always been one of my main interests, but unfortunately, I never explored 'Drag and Drop'. As mentioned above, my main interests were component architectures and Active X Controls. A possible source of info for you might be this as a start.....
freddie1, thank you for the link, yes I see COM is hard to learn not because it's hard but because of the lack of learning material.
Thanks for book recommendation, I already have "Essential COM", but can't google out pdf for the other one :(
Even though none of these 2 books show how to implement drag and drop they are good for learning COM.
It doesn't matter anyway as I already grasped drag and drop with sample code from catch22 site.
Without that site which was so hard to find I think I'll never leran this, and I see so many people ask for help about drag and drop and none got complete answer such as on catch22 site.
hopefully this thread will help future drag and drop seekers.
That one is 'COM In Plain C', but there were many others, but I'm not sure whether he tackled Drag And Drop or not. It would be pretty easy to check.
The reason Jeff Glatt's work was so popular is that the way C++ works hides the Object Model COM uses to standardize object creation and destruction, and COM is going to forever remain mysterious to C++ coders who never look at it from the angle of C and the building of the Virtual Function Tables (Interfaces) that form the basis of COM.
It is for those reasons that 'COM In Plain C' was also popular among low level PowerBASIC Win32 coders, as to access such entities as ActiveX Controls, or, more generally, COM Objects, from that language, one had to see and understand the low level memory structures, and recreate them in PowerBASIC with memory allocations and structs/types as is done in C. The wrapper libraries C++ coders used to absolve themselves of the need to understand these things were of no use in languages other than C++. And one of the fundamental ideas behind the Component Object Model was that it was to be language neutral, i.e., an object based technology usable in any language 'powerful' enough to use pointers and memory allocations.