It is very simple variant colib for masm32.
Posted on 2003-10-12 14:16:30 by robin11
Hi robin11,

why not posting your files in ZIP format. I surely dont download executables of a so far unknown member.

Posted on 2003-10-13 01:03:36 by japheth
Posted on 2003-10-13 02:36:59 by robin11
hi Robin, not to be annoying but have you looked up wether you could distribute these files? MS licenses tend to change and it would be good for us as well as yourself if you include the license governing these files that said that they may be distributed :)

Welcome to the board :alright:
Posted on 2003-10-13 02:59:39 by Hiroshimator
Damned if you do, Damned if you don't :tongue:
Posted on 2003-10-29 03:24:28 by Homer
OCX on absolutely pure ASM without UI.

Something it is similar on WinSock :)
Posted on 2003-11-03 05:22:14 by robin11
Hi robin11,

just tried your ocx control with comview. Im able to view properties and show about box, but cannot view this control in the container (it crashes because method IPersistStorage::GetClassID is implemented wrong).

I would have some questions/suggestions:

1. template.lib is not available in source code. why?
2. some comments in the source would be helpful.
3. please tell us the benefits of your library compared to other approaches

Posted on 2003-11-03 10:51:22 by japheth
In template.lib still it is a lot of bugs.
Sometime it will come nearer to the end.
Then I shall make comments and a source.
It nothing is better than others, is simply other animal :)
Posted on 2003-11-03 11:45:34 by robin11
Outside of commercial reasons, I'm curious why you'd spend time writing stuff to help VB coders :)
Posted on 2003-11-03 13:17:19 by Homer
It works in Delphi too.
VB - makes programs quickly.
At ASM - programs the fastest.
Then VB + ASM - the combination is ideal :grin:
Posted on 2003-11-04 02:08:08 by robin11

Has corrected some bugs.
Now works in the container.
Does not fall in VB and Delphi.
But there is one question :
At work with " ActiveX Control Pad " I do not see Object properties, why?
More precisely - I can not insert them into the .htm document.
Somebody knows this problem?
Posted on 2003-11-10 17:03:12 by robin11
Hi robin11,

thanks for posting this stuff. Because it has so many bugs I was able to make the container inside comview much more stable by testing it with your control :grin: . As you already mentioned there remains some work to do.

A strange issue I want to mention: your object exposes IClassFactory interface. This most likely doesnt hurt, but "normally" the classfactory has to be a (very simple) object of its own.

Besides that you have left some debug breaks in your template lib, which is annoying in some cases.

Posted on 2003-11-15 11:57:03 by japheth

Very well that there is any benefit of it :)
About IClassfactory, is an experimental variant.
I already have corrected many bugs and IPersistStorage too.
I want to make universal library for COM_OCX, COM_EXE, COM_DLL, Shellext, COM Add-Ins.
There are some problems for association of all it.
Posted on 2003-11-15 14:19:50 by robin11
Hi !

Next step...
Posted on 2003-11-17 11:53:50 by robin11
Hi robin,

very good work. OCX control works much better now.

Some problems I found:

1. your objects dont unregister properly. the ProgID entries and the CLSID entry itself is not removed from registry.
2. Disconnecting from your OCX (Unadvise) causes a GPF
3. you should expose IPersist interface as well (minor issue)
4. IPersistPropertyBag::Save causes GPF
5. value "ThreadingModel" for entry LocalServer32 is useless (minor issue)
6. your IUnknown::Release function should return reference count
7. method IPersistStreamInit::GetSizeMax returns size > 1000000 (minor issue)

As already mentioned you should post the source of your template lib. Many members avoid executing code for which there is no source available.

Posted on 2003-11-18 04:40:14 by japheth

I have completed Shellext - now work correctly.
And searched for bugs slightly.

> 1. your objects dont unregister properly. the ProgID entries and the CLSID entry itself is not removed from registry.
I shall correct (I search for a universal way of registration)
>2. Disconnecting from your OCX (Unadvise) causes a GPF
It was necessary to destroy a window.
>3. you should expose IPersist interface as well (minor issue)
What for - unless it is used?
>4. IPersistPropertyBag::Save causes GPF
I have not seen it.
>5. value "ThreadingModel" for entry LocalServer32 is useless (minor issue)
>6. your IUnknown::Release function should return reference count
There there is no bugs.
>7. method IPersistStreamInit::GetSizeMax returns size > 1000000 (minor issue)

Thank for the help.
Posted on 2003-11-19 11:09:07 by robin11
Hi robin,

the only method of IPersist is GetClassID. This method is important (and thats why you should expose IPersist, which should be trivial). A container calles it just before calling WriteClassStg/WriteClassStm (or it is called by OLE itself in functions OleLoad/OleSave). It has to return the CLSID of your object (not a pointer, you will have to copy all 16 bytes). Because GetClassID is implemented wrong, I can save your object with IPersistStorage::Save, but the control cannot be reloaded later.

Posted on 2003-11-19 14:35:45 by japheth

Next step ...
Posted on 2003-11-23 10:49:04 by robin11
works a bit better now.

Have you tested your OCX with win9x? On my win98se system it causes a crash, forcing me to reboot.
And I couldnt find sort of a "OnPaint" routine. So I am wondering how one may adjust the drawing code,
which is somewhat "vital" for a control with a user interface. Possibly I have missed something?

Posted on 2003-11-24 05:20:27 by japheth

Has checked up on WinMe, there is a bug (.... in "User" module)
On my computer is not present Win9x, but I soon shall install and then I shall correct the bug.
This OCX not for UI usages.
But I have ideas to make full UI OCX.
Posted on 2003-11-25 04:06:00 by robin11