|
Heiii !! I have no experience in c++/ATL but i know for sure that major portion of ur skills, which matters is not in ATL/C++ but using ATL/C++ for creating components , which u understand so well , is' it
It's functional knowledge what matters !
Anyways COM/COM+ is not dying , actually i don't c it now !
Cheeeers!!
P.S. PATWAL
|
|
|
|
|
Well... COM seems to die, and although I loose my "super skills", I feel happy about it.
I'm "sitting on" a large desktop application that uses a COM architecture - so I both know what COM means, need COM, and I made the promise "MS will never abandon that" to my boss.
However, "Knowing what COM means" is a two-sided blade. When I see the day-to-day problems my co'(s) face, and I know these things wouldn't be an issue under .NET, I'd happily scrap it for the "new thing". Well, I can't, and that might be a good thing.
Anyway, managed API's are more robust, and easier to use, and COM - while a good architecture as such - suffered from legacy issues and a bad infrastructure since the very beginning.
Nur wer feige ist tötet Liebe durch das Wort allein [sighist] | [Agile Programming] [doxygen] If you look for evil in me you will find it whether it's there or not.
|
|
|
|
|
Hi all,
I've written a COM plugin to IE which prior to loading itself checks the calling process' name. If it happens to be explorer.exe it should quit and not load. If it is iexplore.exe then things are ok...
Now, I've noticed that even if IE runs it can actually be run as a subprocess to explorer.exe. When this is the case, my COM plugin will not load when I want it to.
To my question: Under what circumstances is IE running as/under explorer.exe?
/Tommy
|
|
|
|
|
"IE", as you call it, is not really anything but a client. Namely, I refer to iexplore.exe, which is a COM client just like explorer.exe. WebBrowser2 is the automation server that can be hosted by practically any client. This is what has driven Windows since Windows 95 w/ IE 4.0 and ActiveDesktop - it's completely integrated (which the gov't failed to understand).
So "Internet Explorer" is merely a container application that hosts the WebBrowser2 control, advises its connection sinks, and provides UI services like Favorites and toolbars that can interact with the WebBrowser2 control.
"Well, I wouldn't say I've been missing it, Bob." - Peter Gibbons
|
|
|
|
|
In my Visual C++ project, I adopted OLE Automation to access MS Word. The performance is rather disappointing. A single invocation to get a document object or get the selected range takes as long as over 10 milliseconds. I know invocations via IDispatch is slow. I read from a Visual C++ manual that such an invocation takes about 0.5 milliseconds. Where has the remained time gone? Does Word need so long to process a simple request?
|
|
|
|
|
coz its a dog
i've done a lot of word automation from VC++ and MS Word is....just bloody slow via automation
Bryce
|
|
|
|
|
Some software companies live only thanks to that. For instance, they sell Word/Excel native generators that are up to 10 times faster. So I guess that's good for us all that MS sells sh*tty code.
|
|
|
|
|
I worked with MS Excel automation.that is not too different...hihih KINDA SLOW STUFF
~CodeTheDreams~
|
|
|
|
|
here's my horrible situation:
there is a library that i want to use that operates on either a file or an IStorage object - if you give it a file, it will open its own storage via StgOpenStorage and proceed from there. so, really it likes IStorage, period.
however, my application already has a very nice I/O system in place where data can come from a file, a chunk of memory or from a set of user-defined callback functions. what i want to do is use my own I/O system.
what i need to know is, is there a reasonable way to create an object that implements IStorage so that I can use my own I/O system as the 'back end' ?
is there any good documentation on IStorage? i've looked at the MSDN and it doesn't really help me much - it assumes you're going to use StgOpenStorage and pals.
(yes. this is a repost, with better details)
-c
Zzzzz...
|
|
|
|
|
I only have about 1 week's experience with IStorage (I wrote a docfile viewer for work, we needed something better than the viewer that comes with VC), but as I understand it you can either use the OLE structured storage implementation (the one you get with the Stg* functions), or write your own.
For your situation, you'd write an implementation of IStorage /IStream , which would basically be pass-through calls to your own I/O system. Then create one of those COM objects and pass its IStorage interface to the library. The library has no idea what implementation is behind the IStorage it receives, it just knows that it can call methods in the interface. That is, after all, the whole point of COM.
--Mike--
I'm bored... Episode I bored.
1ClickPicGrabber - Grab & organize pictures from your favorite web pages, with 1 click!
My really out-of-date homepage
Sonork-100.19012 Acid_Helm
|
|
|
|
|
Michael Dunn wrote:
write an implementation of IStorage/IStream
any hints on how to do that? i can see their interfaces in the MSDN, but i don't have a good feeling as to what is really involved with implementing them (ie. how do the calls interact with each other, or modify the object, etc.).
-c
Zzzzz...
|
|
|
|
|
Chris Losinger wrote:
i can see their interfaces in the MSDN, but i don't have a good feeling as to what is really involved with implementing them
That's not what Michael said IMHO. You have to create a wrapper, and in the end, down the hills, just plug to the IStream/IStorage interfaces.
PS : the OLE compound file format is not documented. You are not likely to be able to implement these interfaces yourself, unless you buy a portion of the Windows source code. (or hack the net[^] to find debuting implementations, which I wouldn't trust by the way).
|
|
|
|
|
but ILockBytes is pretty easy to do. and that's what i've done. (see my reply to the root msg here)
-c
Zzzzz...
|
|
|
|
|
The easiest would be to provide an ILockBytes implementation (without the locking, jsut raw read & write), and use StgCreateDocfileOnILockBytes
You could even use the CreateILockBytesOnHGlobal....
Changing requirements are the crux of software development - you start with a sex drugs and rock'n'roll design, and end up with an aids crack and techno implementation [sighist] [Agile Programming] [doxygen]
|
|
|
|
|
|
...so I assume your last question is null and void?
Changing requirements are the crux of software development - you start with a sex drugs and rock'n'roll design, and end up with an aids crack and techno implementation [sighist] [Agile Programming] [doxygen]
|
|
|
|
|
IQuestion->Release();
-c
Zzzzz...
|
|
|
|
|
My companbion CD is cracked in 4 pieces. Its of no use to me. Believe it or not, but the MSPress website has no information on "Inside COM". I did a search for the Book, its not listed, I did a search for the author, he's not listed, I did a search by topic, and under COM, the book is not listed. I did an ISBN search, and no results. WHAT THE FARK?
ANyways, if you would be kind enough, could someone please zip up the cd contents and email them to me? Thank you very much. I will now forever know not to pile my programming books on top of eachother without first removing the companion cd's.
my book order for "essential com" is in the process of going through management, i expect an answer sometime after my projects deadline.
Ryan Baillargeon
|
|
|
|
|
erm...the cd is 50 meg
and the zip file is 23 meg
Bryce
|
|
|
|
|
Hey!...
I have an ftp you could upload it to if your nice enough, I can give you a
loaner account, and when I get home set you up with a permanent one? you up
for it?
ICQ 98527804
MSN rmb_fct@hotmail.nospam.com
Ryan Baillargeon
|
|
|
|
|
|
Yep, I read that of course.. But the fact remains that MSPress hass no mention on its site whatsoever that they even control the publication of this book.
Ryan Baillargeon
|
|
|
|
|
Ryan,
Maybe MS Press is unware of the fact that this book is not on their website. Maybe it could simply be because the book is no longer in print, or is just not supported any longer. The list could go on and on. Whatever the case may be, if you own a copy of the book, you should be entitled to support including but not limited to a CD replacement. Anytime I have ever had a problem with an MS Press Book/CD, I have always contacted them by telephone and asked for a replacement Book/CD which has always been sent out (of course they might ask you to send them back the defective CD which is never a big deal).
As with most Microsoft/MS Press software, distributing the contents of the book's CD would put someone in violation of the license agreement (EULA). Be legit and contact MS Press at their toll-free number listed on their FAQ page.
Regards,
|
|
|
|
|
My Amazon.com Order....
-----------------------------------------------------
Essential COM - Don Box
ATL Internals
Developers Workshop on COM and ATL 3.0
Multithreading Applications in Win32
Inside COM (I own already)
-----------------------------------------------------
Any Suggestions / Comments? I will be developing under VS.NET in VC++.
Ryan Baillargeon
|
|
|
|
|
Scrap Essential Com unless you intend on learning a lot of internals you won't need to know. Get 'Creating lightwight Components with ATL' by Jonathan Bates.
Christian
No offense, but I don't really want to encourage the creation of another VB developer.
- Larry Antram 22 Oct 2002
C# will attract all comers, where VB is for IT Journalists and managers - Michael
P Butler 05-12-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not
as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|