|
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
|
|
|
|
|
Advice taken, book bought, thanks (only £6.99 from Amazon!)
"The folly of man is that he dreams of what he can never achieve rather than dream of what he can."
|
|
|
|
|
Nice Choices...COM Primer Plus is a good one
~CodeTheDreams~
|
|
|
|
|
I am attempting to develop an ActiveX control subclassed from the MFC Listbox.
Following the MSDN tutorial, I set everything up through the Control Wizard, including setting LISTBOX as the subclassed windows control. The problem is, the tutorials (I have read several) all say "If you want your subclassed control to keep the same appearance as the corresponding Windows control, the OnDraw member function for the control should contain only a call to the DoSuperclassPaint member function, as in the following example:
void CSampleCtrl::OnDraw( CDC* pdc, const CRect& rcBounds,
const CRect& rcInvalid )
{
DoSuperclassPaint( pdc, rcBounds );
}
"
Which is what the Control Wizard automatically does and which is how I left it. I was thinking that if I just leave it like so, when I add it to a new project, it will draw me a standard-looking listbox. Instead, I get a plain white box. I also tried calling AddString in my project and was informed by the compiler that the method does not exist.
So far I see no evidence of my ActiveX control being subclassed form LISTBOX (I have the following as well provided by class wizard:
BOOL CSampleCtrl::PreCreateWindow( CREATESTRUCT& cs )
{
cs.lpszClass = _T("BUTTON");
return COleControl::PreCreateWindow(cs);
}
BOOL CSampleCtrl::IsSubclassedControl( )
{
return TRUE;
}
)
Why am I just getting a white box?? Are there some message handlers I need to address first?? As for the AddString not working, I'm still a little rusty on subclassing... do I have to add methods for all listbox methods I want to use in my control and just call CListbox::Addstring(blah, blah, blah) in order to use the Listbox Functionality???
I have read a lot of articles and tutorials on subclassing and activex controls and mfc controls and there seems to be something that I don't know that is overlooked or assumed to be obvious. Any ideas??
Tym!
|
|
|
|
|
I have a COM+ component which bulk inserts records into a table, which takes 5secs to process one request. If I try executing this component multiple times while it is processing job. SQL server 2000 throws PRIMARY KEY VIOLATION error. How can I lock that table while the component is in process.
Thanks a million
|
|
|
|
|
Did you configure the component to require new transaction?
|
|
|
|
|
hello
i am at work and am using an in house activex (ocx) control
the control is zero size and is hidden on my dialog
(it actually talks to the serial port and i didnt write it )
as usual everything is cool and funky when i run in debug mode
but when i run a release build it falls over when i do things like try and
minimize the app, try and use the menu,
As an exmaple, when i try and use the main dialog's menu (its a dialog based app) the call stack looks like...
CWnd::AttachControlSite(CWnd * const 0x004002f6 {CWnd hWnd=0x00000000}, CHandleMap * 0x008e2528) line 420 + 5 bytes
CWnd::FromHandle(HWND__ * 0x004f0344) line 293
CWnd::OnWndMsg(CWnd * const 0x004002f6 {CWnd hWnd=0x00000000}, unsigned int 289, unsigned int 2, long 4547344, long * 0x0012f1d0) line 1896 + 6 bytes
CWnd::WindowProc(CWnd * const 0x004002f6 {CWnd hWnd=0x00000000}, unsigned int 289, unsigned int 2, long 5178180) line 1585 + 27 bytes
AfxCallWndProc(CWnd * 0x00000000 {CWnd hWnd=???}, HWND__ * 0x004002f6, unsigned int 289, unsigned int 2, long 5178180) line 218
AfxWndProc(HWND__ * 0x004002f6, unsigned int 289, unsigned int 2, long 5178180) line 368
USER32! 77d67b17()
USER32! 77d6cdce()
USER32! 77d4459d()
USER32! 77d447b4()
NTDLL! 77f5108f()
USER32! 77d5779a()
USER32! 77d5b79f()
USER32! 77d6cdce()
USER32! 77d45cc9()
USER32! 77d45ce8()
CWnd::DefWindowProcA(CWnd * const 0x004002f6 {CWnd hWnd=0x00000000}, unsigned int 274, unsigned int 61589, long 21037417) line 1006 + 19 bytes
CWnd::Default(CWnd * const 0x004002f6 {CWnd hWnd=0x00000000}) line 248 + 19 bytes
MRKTLNK! CMrktLnkDlg::OnSysCommand(unsigned int,long) + 163 bytes
CWnd::OnWndMsg(CWnd * const 0x004002f6 {CWnd hWnd=0x00000000}, unsigned int 274, unsigned int 61589, long 4543264, long * 0x0012f64c) line 1931
CWnd::WindowProc(CWnd * const 0x004002f6 {CWnd hWnd=0x00000000}, unsigned int 274, unsigned int 61589, long 21037417) line 1585 + 27 bytes
AfxCallWndProc(CWnd * 0x00000000 {CWnd hWnd=???}, HWND__ * 0x004002f6, unsigned int 274, unsigned int 61589, long 21037417) line 218
AfxWndProc(HWND__ * 0x004002f6, unsigned int 274, unsigned int 61589, long 21037417) line 368
USER32! 77d67b17()
USER32! 77d6cdce()
USER32! 77d4459d()
USER32! 77d447b4()
NTDLL! 77f5108f()
USER32! 77d5779a()
USER32! 77d5b79f()
USER32! 77d6cdce()
USER32! 77d45cc9()
USER32! 77d45ce8()
CWnd::DefWindowProcA(CWnd * const 0x004002f6 {CWnd hWnd=0x00000000}, unsigned int 161, unsigned int 5, long 21037417) line 1006 + 19 bytes
CWnd::WindowProc(CWnd * const 0x004002f6 {CWnd hWnd=0x00000000}, unsigned int 161, unsigned int 5, long 21037417) line 1586 + 19 bytes
AfxCallWndProc(CWnd * 0x00000000 {CWnd hWnd=???}, HWND__ * 0x004002f6, unsigned int 161, unsigned int 5, long 21037417) line 218
AfxWndProc(HWND__ * 0x004002f6, unsigned int 161, unsigned int 5, long 21037417) line 368
USER32! 77d67b17()
USER32! 77d6cdce()
USER32! 77d44435()
USER32! 77d44d38()
does anyone have any suggestions as to how to can tell my app to ignore any exceptions from this naughty ocx?
regards
Bryce
|
|
|
|
|
Are you sure the control is developed properly and anyone else using it doesn't face these problems ,
build an application with nothing but the control on the dialog box if it still crashes its not your fault the control is faulty
or you can use try catch to catch any exceptions and try to ignore them (NOT A GREAT IDEA!!)
Symmetrical is Beautifull
IUnknown is Symmetrical
IUnknown is Beautifull
|
|
|
|
|
thank you for your reply
Monty India wrote:
Are you sure the control is developed properly and anyone else using it doesn't face these problems
All the other apps (VB and used in web pages) seem to work ok
i cant vounch for how well it has been developed as i dont have access to the source code...
but it would appear to the the controls fault (coz when i remove all calls to it my app doesnt crash!)
the control uses callbacks...so catching exceptions is tricky...
how would you trap any/all exceptions from such a control?
regards
Bryce
|
|
|
|
|
Does anyone knows how to wirte Plam Desktop addin ? Or where can find the resources ? Thx.
|
|
|
|
|
Do you mean Palm ? If so, do you mean a conduit ?
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
|
|
|
|
|
Same question. Different forum...
I want to host an IE browser control in my application and provide handling for a custom protocol. I figure I just provide the handler in my app, registering on app startup and unregistering on app shutdown.
It looks, however, like the only way to register a custom protocol handler is globally. Which means that as long as my application is running, ANY instance of IE will be elligible to use my custom protocol handler.
Is there some way to register a custom handler for a specific instance of IE? OR do I have to just put up with this "feature"?
J
May the bear never have cause to eat you.
|
|
|
|
|