|
how many ways a client can access com componet ?
ex, I have created a com comp(inproc) which is registerd and ready to use, i want my clinet to access this, what all the steps to be taken from my end (like what all info i need to give to them )and client side ?
thanks
|
|
|
|
|
You need to give them something which defines your components interface - the IDL you used to define the component interface is probably the best thing...
Or you might find that the DLL containing your component is all that's needed - COM components can store metadata (in a type library in the DLL) if they're derived from IDispatch.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
MVP for 2010 - who'd'a thunk it!
|
|
|
|
|
I'm familiar with 3 ways to access an in-proc COM component -
You can use the COM APIs like CoCreateInstance to access the component.
You can use #import to instantiate the COM component using its type library and also create smart pointers for all its interfaces.
You can use ATL smart pointer classes like CComPtr to access the COM component.
|
|
|
|
|
hi,
But before using coCreateInstance u need to know what all the interfaces and components avaiable, so that u can have CLSID and IID of the the component. Also if i am writting client pgm for a component , what should i do to know abt components before i call CoCreateInstance ??
Is there any way client can find details about ur component apart from importing typelib ??
thanks
|
|
|
|
|
A COM client must know what interfaces and methods the COM component implements.
If it does not, then why would it need to use it at all!!!
Usually this is documented by the creator of the COM component.
|
|
|
|
|
A Complete ActiveX Web Control Tutorial
|
|
|
|
|
Hi All;
I'm a long time VB 6.0 developer looking to update the look of my apps. I make extensive use of the ItemData property in the standard VB Combobox. What I need is a drop-in replacement that displays XP style dropdown buttons. Strangely, the scrollbar displays this way, but not the actual dropdown button. The biggie for me is that my application does lots of runtime control creation and such, so whatever I use should not have a huge performance hit (like the XPCTRLS.dll I came across today, that is sooooo slow, although it produces exactly the look I'm looking for, by magically making all standard controls look XP perfect in the background, it's just not practical for my apps. Having said that, it's really easy to implement - 4 or 5 lines of code and a reference to the dll.) Any recommendations will be very gratefully received. Thanks!
George 
|
|
|
|
|
Hello,
I need some help in order to solve a little,annoying problem-flickering.
I've built a Drawer, that works perfectly , but flickers alot,
the general idea is inserting each shape that the user wants to Draw into
a Drawing list and Draw the whole list in paint event each time.
In the last few days ,i've been reading articles about how to solve it,
I tried setting DoubleBuffer to true but it doesn't help at all.
I've seen some methods to stop the flicker in this web but i cant understand/use them.
I need something as simple as possible that of course works.
Thank you very much.
|
|
|
|
|
Question is not clear. Are you using GDI or GDI+? Is it a C++ application? May be you can post it in C/C++/MFC board.
|
|
|
|
|
Thank you,
I think it's GDI+,
it's in c#, CreateGraphics().
|
|
|
|
|
Hoping someone can be of help. I'm looking for a copy of the DSOFramer source code. MS pulled the download link citing incompatibility issues with Office 2007. I'm using v1.0 with reasonably good success with Word 2003 and Word 2007 and am looking for the latest version. Does anyone have a copy of the DSOFramer source they'd be willing to forward to me?
Thanks in advance -- Steve
|
|
|
|
|
Hi,
Can .NET wrappers be used as COM? If yes, how to do it?
Thanks,
|
|
|
|
|
transoft wrote: Can .NET wrappers be used as COM? If yes, how to do it?
This question is not clear, can you try and explain what you are trying to achieve?
|
|
|
|
|
After some researches. I found that this is implementable.
|
|
|
|
|
I am making calls from my C# client to COM server. One function of the COM server returns a VARIANT of safearray containing BSTRs. Another function of COM server removes/destroy the VARIANT from memory. After receiving the VARIANT as an "object" in the C# client and processing the information, I am trying to use the destroy function to remove the VARIANT permanently. Because of memory management in the Managed side, the unmanaged code fails to remove the VARIANT. I was hoping to use "fixed" keyword but it does not work with "object". Is there any possible approach to achieve this requirement?
Thanks for your help in advance.
|
|
|
|
|
You don't have to warry about a VARIANT of safearray which contains BSTRs
C# GC will destroy it by oneself
Or You can destroy it like obj=null.
|
|
|
|
|
how to get all the com interface with VC 6.0
i just to know "ITextDocment"..
and i want to know all the interface like "ITextDocment"
how can i to know and where the docment
when i found on MSDN ,but it only support .net
i am work on VC 6.0
|
|
|
|
|
|
HI,
I have little knowledge in COM. But in my recent interview i faced these questions, and i couldnt answer.
please clarify my doubts.
1.) If I crate 2 Components with same name then how do I call the desired component?
Because Iam passing only Component name as parameter to CreateInstance Function?
2.) If I crate 2 Components with same name and iam going to register ,then what will happen ?
3.) If you need to add new functionality to your COM Component, then what do you do for that?
Can you change existing COM component ? Do you need to register once again?
Thanks,
Krishna Rayalu
|
|
|
|
|
A COM component is identified using a class Id called a CLSID and not its name.
If you want to add new functionality to an existing COM component, you create a new interface.
It is not necessary to register the component again because the CLSID doesn't change.
|
|
|
|
|
Thank you so much for your Knowledge sharing.
Regards,
Rayalu.
|
|
|
|
|
Hello
I have two COM local servers developed using ATL. The local servers have interface pointers to each other and the pointers will be released when
Stop()is called from a client to each server. The client will also release its pointers to the servers and both components will die (lock count == 0).
Now to my problem. If one of the components crash I have a problem to shut down the other server. The still running server will have a lock count from the allready dead server.
I would be very happy if someone could give me a sugestion how to solve this.
Johan
|
|
|
|
|
Can I ask why you're not concentrating on preventing the 'crash' instead of putting effort into trying to deal with the after effects of such a crash?
|
|
|
|
|
The local servers are running on an embedded device with Windows CE. Before release everything should be tested as good as possible but there is still a risk for crashes. The most obvious would be to implement a watchdog which would reset the device but this is not an option because of the long boot time of the operating system.
Each server implements a watchdog configured to terminate the server process. This termination will be notised by the client and the client restarts the terminated server.
One way to shut down servers who refuse to die is to send WM_QUIT to it. This whould probably work because this is what happen when the lock count reach zero. This solution is very ugly and I am looking for the right way to do it. There must be a standard solution for problems like this.
|
|
|
|
|
I've never done abything on CE but how about...
Johan.Wade wrote: This termination will be notised by the client and the client restarts the terminated server.
If your client can notice that one of the local servers has been termnated, the client must then be able to instruct the other non-terminated server to ignore the pointer it holds to the terminated server. To recover the client can then set up a new server and by some mechanism have them 'discover' each other to set up new pointers.
During the 'instruction to ignore the other server', that is prior to the 'discover' phase, the server must be instructed by the client to internally call Release to restore the existing servers count to 1.
|
|
|
|