hello,

uh, is there someone interest in propertysheet handler too??

I duno why my property sheet handler doesn't work,
I assemble it with no errors, and it register fine , I think?

but I duno why it doesn't show the new tab page when I click on a file and select property...

please can someone help me out too???


I have attached my not working asm file
:alright:
Posted on 2001-12-16 00:20:26 by Yanda
there was some example done with radasm that does property sheets. here's the source
Posted on 2001-12-16 01:18:27 by grv575
hi grv575,

I think u miss understand me,

I know how to deal with propertySheet, but not when use with COM's PropertySheet Handler.

I have no idea what is wrong with my program, it seems everything is ok, and I try to put some msgbox for some checking but it doesn't seems have problem,

I need someone help me figure out what is wrong with my source :confused:

so, may download the asm source I attached and see
:grin:
Posted on 2001-12-16 14:20:24 by Yanda
Yanda,

post the source with the includes and the generated dll.
Posted on 2001-12-17 02:46:27 by japheth
hi japheth,
ok
here is my whole testing project:
this is the one I am trying to convert from a vc++ source, I will attach them all


thankx
Posted on 2001-12-17 02:59:07 by Yanda
here is the vc++ source that I am trying to convert from.
Posted on 2001-12-17 03:00:02 by Yanda
Yanda,
im relatively sure your program doesn't all registration needed for shell extensions. I have done these registrations "by hand" and your extension prog is then called. Even the tab and your message box is displayed, but shortly afterwards explorer crashes. So there remains something to do.

What i have done so far:

1. I couldnt find any place in your registry script where a "shellex" key is registered for an extension. So I defined your CLSID in "HKEY_CLASSES_ROOT\*\shellex\PropertySheetHandlers". I found your CLSID definition in mainext.rgs, but im afraid Ernies script handler cannot handle keyword "noremove". In any case, this entry is missing after registration and without it explorer cannot know what dll to call. So I manually added this entry too.
2. After this job your dll is called (procs "Initialize" and "AddPages"). But since you dont have defined a "dialog" resource for the PROPSHEETPAGE structure, nothing else happened. I added a simple dialog box resource and then the TabProc dialog proc is called, the tab is displayed, but some time later explorer crashes.

japheth
Posted on 2001-12-18 07:12:50 by japheth
Hi Yanda


By making search on the Web, I found the following link
http://www.geocities.com/vpol_54296/index.html#com

look at the program "myprop.zip" , it should solve your problem.

Regards

Colio

PS:"Sorry for my English"
Posted on 2001-12-18 12:06:36 by colio
hi, japheth and colio

thankx for da helps, as you know I am just start learning COM after I seen someone post similar msg then I decided to give it a try but... kekeke


anyways thankx alots, and I will keep working hard


sincerely,
Posted on 2001-12-19 02:45:51 by Yanda
Yanda,

your shell extension now runs on my system.

the reason for the crash was Release() was called and the dll was unloaded. It has been fixed by a line in AddPages:



externdef g_ObjectCount:DWORD

mov PropSheet.dwFlags, PSP_DEFAULT or PSP_USEREFPARENT
mov PropSheet.pcRefParent,offset g_ObjectCount



japheth
Posted on 2001-12-19 05:09:45 by japheth
heres a working dll (with source).

IF you want to rebuild the dll, colib file SetSubKey.asm has to be modified (theres a small "bug" inside):



.IF !Flags
.IF (NewKey) ;<--- change
invoke RegCloseKey, NewKey ;<-----change
mov NewKey, NULL
.ENDIF
invoke RegCreateKeyEx, OpenKey, pszToken, NULL, NULL,
REG_OPTION_NON_VOLATILE,
KEY_READ or KEY_WRITE,
NULL,ADDR NewKey, ADDR Disp
jmp GetNextT
.ENDIF

Posted on 2001-12-19 06:50:38 by japheth
:alright:

thank you so much japheth!


sincerely,
Posted on 2001-12-19 17:25:57 by Yanda