someone asked me if i'm doing COM today. I said "no", and that I even don't know what that exactly is, and what I need it for. perhaps one of you can explain it to me?!
Howdy Safcon! I'm not the indicated person to tell you what COM is..but you can check that at Ernie's site : http://here.is/cominasm Enjoy! Latigo
all im gunna say is its kinda like lego :D
Well i will give it a stab, (im no pro tho), Com's as i now understand them are intefaces to Hidden code, kinda like black-boxes. COM == Component Object Model A COM is a window object that is totaly self sustaining, they have their own unique identifier, and all instances of it is maintained by this one object. The most basic COM has only 3 'behavioural' interfaces (AddRef, Release, and QueryInterface), theses are the basis of all COM's. Every other COM used, (DirectX for example) is inherited from this basic interface, such that every unique com will have at least a standardized interface for its most basic functions (mentioned above). The interface is a virtual funtion pointer table (Sounds crazy but not hard to wrap your mind around). Every separate instance of a COM created returns a pointer to another unique Interface table for the Functions it suports. This is why Ernie has gone to great lengths to devise a working standard of placing function PROTOTYPES into a stucture. This way fuction pointers can be inplemented (Same function name, different address of the function) and used for Different instances of the same COM object. The rest is left up to the COM itself, so i pretty well ignore the ongoings and trust the documentation that Micro$oft gives. Much like any other API i use.. Ernie, how did I do? :P NaN
Heh, pretty good Nan. At base, COM is a COMMUNICATION protocol between differing code "blobs" (blob is an acronym for Binary Large OBject). Literally a blob, because it does not define a language for use. The same standard applies to VC, C, C++, Delphi, ect. I've even seen COM in Fortran! COM is a binary standard of how objects talk. Much of the syntax seems to be "C++" because that was the "new thing" when COM was first developed (initially in C). COM was developed to end the "dll hell" problem, as it strongly enforces the interfaces blobs talk to each other. And it makes this communication easier (or even possible) by defining one common interface, so now VB can talk to C++ can talk to Delphi can talk to asm. COM also defines methods so that the blobs in one process may talk to blobs in another process. DCOM (or COM+) way extend the limits of these processes such that they need not be on the same computer, they need only share a network. So a client may run code on the server, under the clients control. This may be the most importaint aspect of COM. BTW, my site is a poor way to learn about COM. I assume one already knows what it does somehow, and I explain how to run with it in ASM. The best explanation of COM I know is "Inside COM"
i still confuse about COM too though i have read some documentation from ernie. There are so many interface declarations and syntax that i never used it before in masm32. I know java programming and i know a little bit about java interface definition language. if we want to communicate through Object Request Broker usually we define interface in idl then mapping it in java language with idlj or idltojava compiler. Is it the same between COM and CORBA ? where can i find a simple com example ?
COM and COBRA are competing technologies. That about ends my knowedge of COBRA. The examples I wrote ARE simple examples. Really. There are just a lot of steps to cover. There are a couple of COM articles in http://asmjournal.freeservers.com/, you may find his explanations more to the way your brain works. Incedentally, COM also uses IDL to define interfaces. the IDL compiler (MIDL.EXE) compiles these into a typelib, which is usually kept as a resource in the .dll Most of the complications come from getting MASM to understand COM. MASM can do COM if you define all the steps for it.
hi Ernie i can't find com example in your site. i just found your article in word document, where is it ? must i install masm32v6 service pack 2 ? can anybodies help about the setting we must do ?