From: Jackson Y. <jac...@ya...> - 2001-08-01 01:13:11
|
----- Original Message ----- From: "Rob Light" <rl...@ar...> To: <min...@li...> Sent: Tuesday, July 31, 2001 14:11 Subject: Re: [Mingw-users] DirectX 8 libs for MingW32 > Hmmm, that's interesting. How exactly does this work? Can someone > point me to some good reference material (on or offline) where I can > learn how COM works? I'd like to know how the compiler/linker > "resolves" the COM symbols and what mechanism "links" the method calls > to the right code run time. The COM page at the MSDN library would probably be a good place to start: http://msdn.microsoft.com/library/en-us/com/hh/com/comportal_3qn9.asp?frame= true There are many, many other resources out there on the web, so feel free to do a search at your favorite search engine for "COM tutorial" or something of that nature. I used to have a very nice Powerpoint presentation from a Microsoft senior developer on my computer comparing COM concepts to C++ concepts, but it has been lost somewhere in the large pile of documents that I've collected over the years. > What do the definitions for IID_IGraphBuilder, etc. contain? Those are the GUIDs identifying the DirectShow interfaces needed to interact with the filter graph. If you don't know what GUIDs are, they are a sequence of bytes, much like IP addresses, meant to distinguish a particular object from another. The acronym is Globally Unique IDentifiers, and they are one of the foundations of COM since all objects and interfaces have a GUID. It was Microsoft's solution to avoid namespace collisions such as namespaces in Java and C++ have been designed to do. With so many people around the world working on code at the same time, it was only a matter of time until two people decided to use the same name for two different objects, so COM relies on GUIDs rather than strings to identify components. > And where do the symbols for CoInitialize(), CoCreateInstance(), and > CoUninitialize() reside? Surely they must be available in some type of > library at link time, right? Yep, you're right. Those reside in the import library ole32 and are regular Win32 APIs to interact with the COM run-time. Regards, Jackson Yee http://jacksonyee.welcome.to/ E-mails for help will be ignored unless I had asked for them. Please post to the group. _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com |