Greetings, Is there a reason why one should package a typelibrary with a shell extension DLL? Is this necessary for marshalling purposes?
Posted on 2003-11-15 11:01:39 by Poimander
Hi,

how do you get such an idea?
Posted on 2003-11-15 11:59:12 by japheth
Well, if you take a look at the VC++ generated shell extensions on CodeProject/CodeGuru several of them include a typelibrary exposing a dispinterface. I thought there must be a reason for it BTW, Montgenie's asmTxtInfo sample includes a typelibrary.
Posted on 2003-11-15 13:01:11 by Poimander
Hi!

Experimental variant for Shellext with ContextMenu and ShellPropSheet.
Posted on 2003-11-15 14:31:40 by robin11
Greetings robin11, Is that available in zip format or some other rar version compatible with WinRAR?
Posted on 2003-11-15 16:27:36 by Poimander
I agree... im seeing too many Rar's these days... dont understand the point, for small ASM files its pointless to deviate off a well established norm to save 1Kb in a 10kb file. Its actaully the reason why i havent reviewed his earlier postings... I have no patience for dig up the newest unrar that is compatable...
Posted on 2003-11-15 23:55:08 by NaN
Hi!

WinZip 8.1 SR-1 (5266)
Posted on 2003-11-16 03:32:08 by robin11
"well established format". Zip sucks, rar is nice, and unrar is free. What's the problem? - rar's pretty widespread anyway, unless some of the other "non-zip formats".
Posted on 2003-11-16 07:08:00 by f0dder
Hi f0dder,

could you please be so kind and tell as why "Zip sucks"? Havent hat problems with it until now.
Posted on 2003-11-16 10:43:12 by japheth
ZIP was invented by a capitalist/imperialist pig. RAR was made in Russia. I have WinRAR installed, and it supports ZIP, ACE, TAR, among other formats. Much better than WinZIP.
Posted on 2003-11-16 10:57:31 by comrade
IMHO WinZIP has a much better user interface. BTW, has anyone actually thought about the subject of this thread?
Posted on 2003-11-16 11:56:24 by Poimander
Hi!

It is possible without typelib to solve a problem, but with Winzip :)
Posted on 2003-11-16 12:24:03 by robin11

ZIP was invented by a capitalist/imperialist pig. RAR was made in Russia. I have WinRAR installed, and it supports ZIP, ACE, TAR, among other formats. Much better than WinZIP.

*giggle*

The WinRAR interface is a much cleaner and "power-user" friendly than winzip. Furthermore, the zip format is awful, it doesn't support solid compression (which boosts compression ratio massively, especially when dealing with, say, a source archive).

Anyway, enough pollution of this thread already.
Posted on 2003-11-16 15:16:25 by f0dder

Anyway, enough pollution of this thread already.


Hmmm, f0dder, wasnt it you who has started this pollution?

BTW, my question was about zip format, not winzip/winrar. From what I have read up to now to say "zip sucks" seems a bit overstretched.

Since I dont own a copy of WinRAR and surely dont want to achieve one, I must agree with NaN and still would prefer zip format, for there is much better GUI support.

Japheth
Posted on 2003-11-16 18:44:51 by japheth
Poimander,

The typelib is for the automation programming languages like VB. So it can make it easy for the programmer to interface to the object.

Regards, P1
Posted on 2003-11-17 09:38:32 by Pone

Hmmm, f0dder, wasnt it you who has started this pollution?

Yep, and I wanted to end it. Posted on 2003-11-17 10:07:44 by f0dder
Pone,


The typelib is for the automation programming languages like VB. So it can make it easy for the programmer to interface to the object.


How do you get an interface pointer to a server (=shell extension) created by the shell in the shell's process?

Japheth
Posted on 2003-11-18 01:03:44 by japheth
japheth,

Sorry for the delay, I wanted to look up a ref. ( Inside COM+ BaseServices, M$ Press ), so I could answer completely.

VB uses three methods to instantiate an object ( get a pointer ) from the TypeLib info ( roughly, a binary version of IDL ).
VB syntax, VB instantiation method
1. Set MyObj = Object, uses CoInitializeEx & CoUninitialize.
2. Set MyObj = New Object, uses an internal object creation mechanism. ( Limited and for Local use only. )
3. Set MyObj = CreateObject("MyProgID","MyServer"), uses COM+/DCOM to instantiate the object on a server.

Originally posted by japheth
How do you get an interface pointer to a server (=shell extension) created by the shell in the shell's process?


Let me know, if this covers what you want. Otherwise, give a few details and I can provide VB code for an example.

Regards, P1 :cool:
Posted on 2003-12-01 13:28:47 by Pone
Hi Pone,

your answer doesnt exactly cover my question. Im aware of the types of VB COM object creation.

An example:

1- you have registered a shell namespace extension.
2. the shell creates an instance of this clsid at startup
3. you want to communicate with this INSTANCE by automation (type information)

thats the issue. Its rather useless to create your own instance of a shell extension in your process.

AFAIK, the shell itself doesnt use the automation interface, it has its own set of predefined interfaces
to communicate with its extensions. So poimanders question (why type information for shell extensions)
is still not answered.

Japheth
Posted on 2003-12-01 23:29:59 by japheth