Click here to Skip to main content
15,906,816 members
Home / Discussions / COM
   

COM

 
GeneralRe: HELPPPP Pin
Renjith Ramachandran1-Nov-02 6:45
Renjith Ramachandran1-Nov-02 6:45 
GeneralProblem using IStorage::CreateStream() Pin
Xeena28-Oct-02 2:09
Xeena28-Oct-02 2:09 
GeneralRe: Problem using IStorage::CreateStream() Pin
ian mariano29-Oct-02 2:37
ian mariano29-Oct-02 2:37 
GeneralRe: Problem using IStorage::CreateStream() Pin
sajal5-Nov-02 3:24
sajal5-Nov-02 3:24 
QuestionHow to build CCommand from IRowset* Pin
Rohit27-Oct-02 20:18
Rohit27-Oct-02 20:18 
GeneralCOM freezed Pin
Ph@ntom25-Oct-02 21:05
Ph@ntom25-Oct-02 21:05 
GeneralDesign Question Pin
Simon Steele25-Oct-02 0:02
Simon Steele25-Oct-02 0:02 
GeneralRe: Design Question Pin
Daniel Turini25-Oct-02 0:17
Daniel Turini25-Oct-02 0:17 
Simon Steele wrote:
Hi, I want to create an application which will have three "services" (not necessarily NT services). I need fast and frequent IPC calls, and think that COM is probably the way forward for this.

One of these services will need to communicate with the two others, and those two others will need to know about the first.

When defining the interfaces for these services, should I create a single IDL that defines all three? Surely this will reduce include complexity? Am I correct in thinking that the best way to do so is to derive from IUnknown - or should I be aiming at IDispatch?

Having defined that IDL, is the best way to attempt to compile that into a .tlb and import it in the other projects?


I would go for a single IDL and .TLB because there are inter-dependencies between the interfaces, as it seems it is your first ATL project.
About the IDispatch, using ATL, I would definitively recommend you to declare your interfaces as dual, so they are exposed both as custom interfaces (derive directly from IUnknown) and have the IDispatch implemented too. Take care and only use automation types, this makes things easier for your clients. You'll never know when your COM object will be used from scripting clients or beginner VB programmers, and God knows why, they find IDispatch easier...
The ATL COM wizard have an option that generates the dual interfaces declaration and the IDispatch implementation for you, so, normally this is a no-brainer.


Q261186 - Computer Randomly Plays Classical Music
GeneralRe: Design Question Pin
Simon Steele25-Oct-02 1:34
Simon Steele25-Oct-02 1:34 
GeneralRe: Design Question Pin
Stephane Rodriguez.25-Oct-02 0:29
Stephane Rodriguez.25-Oct-02 0:29 
GeneralRe: Design Question Pin
Simon Steele25-Oct-02 1:25
Simon Steele25-Oct-02 1:25 
GeneralRe: Design Question Pin
Stephane Rodriguez.25-Oct-02 1:36
Stephane Rodriguez.25-Oct-02 1:36 
GeneralRe: Design Question Pin
Len Holgate6-Nov-02 0:09
Len Holgate6-Nov-02 0:09 
GeneralFinding COM objects Pin
thowra24-Oct-02 10:29
thowra24-Oct-02 10:29 
GeneralRe: Finding COM objects Pin
Daniel Turini25-Oct-02 0:22
Daniel Turini25-Oct-02 0:22 
GeneralRe: Finding COM objects Pin
thowra31-Oct-02 4:33
thowra31-Oct-02 4:33 
Generalerror when doing invokehelper.. Pin
BK Pradeep24-Oct-02 1:15
BK Pradeep24-Oct-02 1:15 
Questionhow to pass a struct to com Pin
zwzcode23-Oct-02 22:22
zwzcode23-Oct-02 22:22 
AnswerRe: how to pass a struct to com Pin
Simon.W24-Oct-02 1:30
Simon.W24-Oct-02 1:30 
GeneralBSTR string as output parameter Pin
Huu Pham23-Oct-02 16:41
Huu Pham23-Oct-02 16:41 
GeneralRe: BSTR string as output parameter Pin
Steve S24-Oct-02 2:56
Steve S24-Oct-02 2:56 
GeneralMax Length of BSTR Pin
nativespirits23-Oct-02 10:43
nativespirits23-Oct-02 10:43 
GeneralRe: Max Length of BSTR Pin
Daniel Turini23-Oct-02 12:00
Daniel Turini23-Oct-02 12:00 
GeneralRe: Max Length of BSTR Pin
Todd Smith23-Oct-02 12:03
Todd Smith23-Oct-02 12:03 
GeneralRe: Max Length of BSTR Pin
Michael Dunn23-Oct-02 13:39
sitebuilderMichael Dunn23-Oct-02 13:39 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.