|
Hi,
I am very much interested to learn what is COM. And how to create my own components using Visual Basic.
Rajesh.J
mail to:rajesh.nathan@rediffmail.com
|
|
|
|
|
If you want to know COM then there are many excellent tutorial about COM in Code Project site.
You can check out my weblog on COM for some good URL i have posted-
http://lovecom.blogspot.com[^]
But this is all about C++ implementation of COM specification
-------------------------
Have a great day ahead!
Regards,
Sohail Kadiwala
(My COM Blog - http://lovecom.blogspot.com)
modified 21-Apr-21 21:01pm.
|
|
|
|
|
I am trying to develop an IE plugin that
a- Show its Icon on the toolbar
b- Interact with IE and record every site the user goes to.
Any ideas?
P.S. Dont be concerned, im not interested in writing spyware. Im more concerned with getting the IE COM model to interact with C# and logging every http request is one way i know that its working.
|
|
|
|
|
Hi
Look in MSDN for the word "BHO" Browser Helper Objects.
cu kurt
Fast Prototyping
|
|
|
|
|
Hello,
I have a C# command line program that reads data from an Excel workbook and creates an Xml file from it. The Excel workbook is not modified, and the Excel app is hidden from the user.
Everything works fine except when I quit my program before it finishes. When I do this, Excel stays open. The only way to tell this is to look in the task bar; the first time I did this I was surprised to see 8 Excel processes running!
There must be a way to tell Excel to quit when the process that started it quits... anybody know how I can do this? Thanks!
Jeremy O
PM Logic
http://www.jeremyo.com
Jeremy O
PM Logic
http://www.jeremyo.com
|
|
|
|
|
It's been years since I fiddled with automation and excel. But if memory serves me right, simply call the Quit() method on the application object, and it should go away immediately.
--
Wir müssen leben bis wir sterben.
|
|
|
|
|
This is what I do (code is at the bottom of the page), and if I press the 'X' button in the Command Line window before my program finishes, it seems that the finally{...} block never executes. I thought that I was guarenteed it would, am I incorrect in thinking that?
Somebody said something about an Excel Automation COM library... I don't know the difference between using that and doing what I am doing. Is my head under a rock? If it is, please point me towards an explaination, perhapse an article explaining which to use and maybe even a programmers reference.
Thank you! Following is the code I use:
<br />
class XmlBuilder<br />
{<br />
<br />
private Excel.Application excelApp;<br />
<br />
[STAThread]<br />
static int Main(string[] args)<br />
{<br />
XmlBuilder app = new XmlBuilder();<br />
<br />
try<br />
{<br />
app.excelApp = new Excel.ApplicationClass();<br />
<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
}<br />
finally<br />
{<br />
if(excelApp != null)<br />
excelApp.Quit();<br />
}<br />
return 0;<br />
}<br />
}<br />
|
|
|
|
|
I'm sorry, but C# and .NET/COM-bridges isn't my cup of tea. I have no idea why your finally clause isn't executed.
--
Wir müssen leben bis wir sterben.
|
|
|
|
|
|
Yes, that's it!
I'll be able to finally finish this up now. Thank you much!
Jeremy O
PM Logic
http://www.jeremyo.com
|
|
|
|
|
Hi guys!
I noticed that the previously asked question is very similar to mine, but I will "sharpen" my inquiry: I have a DCOM server revealing API that is supposed to accept a structure as a parameter. The client using server, will be located on a remote PC and can be written on any language :(c++,VB,.NET). Could you please tell me what will be the best way to transfer the struct as an input parameter in my case?
|
|
|
|
|
Just define the struct in the IDL file of your project. See this page[^] for more information.
--
Wir müssen leben bis wir sterben.
|
|
|
|
|
Jorgen, thank you very mach.
God bless you, my friend!
|
|
|
|
|
I have some APIs that take one or more struct as input parameters. I need to call these APIs remotely (from a different computer than the one they are sitting on).
I figured I could use DCOM. However, how do I call a COM object with a struct as the input?
THanks
merlinos
|
|
|
|
|
You can define structs in MIDL which you can pass over DCOM. The good way to pass the structs to your API would be to repackage the struct in your COM methods. The ugly way would be to just cast and pass the structs to the API functions. Good method
HRESULT COMClass::Method(Struct* pPassedIn)
{
APIStruct s;
s.field = pPassedIn->field;
APICall(&s);
return S_OK;
} The ugly way
HRESULT COMClass::Method(Struct* pPassedIn)
{
APICall((APIStruct*)pPassedIn);
return S_OK;
} For the latter case, just make sure the MIDL-struct members are packed and aligned as the API struct.
--
Wir müssen leben bis wir sterben.
|
|
|
|
|
Could you please explain in more details what do you mean? I'm not very familiar with all COM/DCOM abbreviations,even thow I have a basic knowledge on the topic, so could you please explain what is APIStruct,APICall and how is it related to MIDL ?
Thanks
|
|
|
|
|
APIStruct and APICall are just fictious names for the functions he wants to call using DCOM. It is not related to MIDL at all. However, his COM-methods could forward the calls to these APIs, which was the point with my previous message.
--
Wir müssen leben bis wir sterben.
|
|
|
|
|
Hello,
my Win2k MFC dialog application exports data to en excell file by using Automation (excel9.olb type library) and works fine if the function doing this is placed in an OnButton() function of the dialog class. Unfortunately, when I put it in a thread it always fails with the message: "Microsoft Visual C++ Runtime Library Runtime Error! abnormal program termination". I need to put the function in a thread since it takes a while to complete its task and I don't want the main window to freeze in the meantime. Does anybody know where the problem might lie? And what is this Runtime Library anyway? I've heard the word "runtime" many times but never actually knew what it exactly meant.
thanx for your answers
Koxin
|
|
|
|
|
koxin wrote:
my Win2k MFC dialog application exports data to en excell file by using Automation (excel9.olb type library) and works fine if the function doing this is placed in an OnButton() function of the dialog class. Unfortunately, when I put it in a thread it always fails with the message: "Microsoft Visual C++ Runtime Library Runtime Error! abnormal program termination". I need to put the function in a thread since it takes a while to complete its task and I don't want the main window to freeze in the meantime. Does anybody know where the problem might lie?
To use automation from a background thread, the thread needs to call CoInitialize or OleInitialize, and of course the appropriate uninitialize function before it exits. Could that be the problem?
Nathan Holt
|
|
|
|
|
I've been developing an IDL-like programming language and wrote a system of complex namespaces that cover most of core features (everything from garbage collecting to automatic serialization, dynamic casting ...). I'd like to ask how many of you feel this is a good thing to do and how many that it's a bad thing?
Software developer
MA, USA
|
|
|
|
|
Hi, and then why?!!!!
I mean why have you decided to build such a thing?
while there are enough much better programming languages available?!!
Don't you think it's kind of wasting your time?
Any way, that's a good programming practice.
but not convinient for starting to program with such new language.
|
|
|
|
|
MohammadAmiry wrote:
while there are enough much better programming languages available?!!
Don't you think it's kind of wasting your time?
Uh, excuse me. How do you know there are better languages available, when you haven't even seen his? He might be sitting on the next programming revolution, and here you are acting like an old Fortran programmer.
--
Wir müssen leben bis wir sterben.
|
|
|
|
|
OK, I haven't seen his programming language.
Neighther I ment to disappoint him.
Anyway I myself would like very much to see this new programming language.
And who knows? After that I might change my idea!;)
|
|
|
|
|
Hello,
I use the (vbscript.dll) IRegExp COM for regular expressions (info got from this article (http://www.codeproject.com/string/use_regular_expression_in_your_program.asp[^]
in my c++ program, it seems to work ok, but some of the paramters won't work.
Check this out
<br />
static IRegExpPtr regExp; <br />
<br />
regExp.CreateInstance( __uuidof(RegExp) );<br />
<br />
CString mystr = _T("<something>what<something>else>");<br />
CComBSTR bst(mystr);<br />
<br />
regExp->put_Pattern( bstr_t( "<something>" ) );<br />
<br />
_variant_t v;<br />
VariantInit(&v );<br />
v.boolVal = TRUE;<br />
<br />
regExp->put_Global( v.boolVal );
regExp->get_Global( &v.boolVal );
<br />
It just fails to set the global parameter to true.
If anyone has used the IRegExp interface before and knows about this problem,
please help.
|
|
|
|
|
necroleak wrote:
v.boolVal = TRUE;
I don't know if this will solve your problems, but VARIANT_BOOL s use the values VARIANT_TRUE and VARIANT_FALSE . I always convert back and forth between BOOL, bool <-> VARIANT_BOOL , in case some code tests against VARIANT_TRUE . VARIANT_FALSE is 0, as is FALSE , as well as false when it's evaluated as an integer.
For instance, IIRC, TRUE is defined as 1, while VARIANT_TRUE is defined as (unsigned int)-1 = 0xFFFFFFFF . Thus TRUE == VARIANT_TRUE is indeed false.
--
Wir müssen leben bis wir sterben.
|
|
|
|