A while ago I opened a topic "ExcelHost problem" when I was working on a helping tool for COM coding in assembler. The tool was coded in VB. I have translated this tool into assembler code both as a stand alone exe and as an addin for RadAsm. I am sure I posted the stand alone exe on this forum but I can't find it.
I have made some improvments of the exe. The access database contains code snippets used by the tool. The TLBINF32.DLL and TLBINF32.chmL are MS type library information component and helpfile. The ComTut.chm is a tutorial file. Place these files in the same folder as the ComTool.exe (the TLBINF32.DLL only if you don't already have it).
There is a demo of Excel automation in ComDemo.zip. The ComTut.zip contains a skeleton of the demo where you can test the tool. The ComTut.chm will guide you and the demo will give the answer.
17 downloads of the RadAsm addin but unfortunately no respons. Now I hope to get some respons.
I have made some improvments of the exe. The access database contains code snippets used by the tool. The TLBINF32.DLL and TLBINF32.chmL are MS type library information component and helpfile. The ComTut.chm is a tutorial file. Place these files in the same folder as the ComTool.exe (the TLBINF32.DLL only if you don't already have it).
There is a demo of Excel automation in ComDemo.zip. The ComTut.zip contains a skeleton of the demo where you can test the tool. The ComTut.chm will guide you and the demo will give the answer.
17 downloads of the RadAsm addin but unfortunately no respons. Now I hope to get some respons.
The zip file was to big. The ComDemo and ComTut are in the attached file.
Hi minor28,
under win98SE it dose not work.
Regards
ipadilla
under win98SE it dose not work.
Regards
ipadilla
Hi ipadilla,
It works on XP. Unfortunatly I didn't test it on win98 but I get the same error on win98. The function CancelTimerQueueTimer exist on XP kernel32 but not win98. I don't call that function so it must be some internal call from any system dll. The error occures in the startup time and I can't debug it. I will look into the problem.
If you have RadAsm you can use the ComTool.dll meanwhile. I had problems with the dll on win98 too but now the problems are solved.
It works on XP. Unfortunatly I didn't test it on win98 but I get the same error on win98. The function CancelTimerQueueTimer exist on XP kernel32 but not win98. I don't call that function so it must be some internal call from any system dll. The error occures in the startup time and I can't debug it. I will look into the problem.
If you have RadAsm you can use the ComTool.dll meanwhile. I had problems with the dll on win98 too but now the problems are solved.
> I don't call that function so it must be some internal call from any system dll
with a PE tool one can see that the function is imported by comtool.exe directly.
with a PE tool one can see that the function is imported by comtool.exe directly.
Now I got rid of the CancelTimerQueueTimer and some other unexplainary functions. What I did in the first place was to copy the addin project to a new folder. Changing the RadAsm project options from dll to exe and adjust the dll processes to exe. To solve the problem I created a new exe project and imported all files. Now it works on win98 and XP. There is only one thing. The richedit controls of the info window and VB browser are black. I will look at that problem later.
Now also the richedit control works.
Hi minor,
your prog now works with win98 SE. Some things to improve are:
- folder "Program Files" doesn't exist on german installations, for example. There exists a registry entry to get the real name of this folder
- cannot resize the main window
- calling ::Release does NOT return a HRESULT. It is an error to query
.if (eax == S_OK)
after calling ::Release
- is tlbinf32.dll redistributable?
- why do you use an access database. Its flexible, ok, but a simple text file would be better (possibly .INI format?)
- I understand what your tool does, but possibly others will not due to bad documentation.
your prog now works with win98 SE. Some things to improve are:
- folder "Program Files" doesn't exist on german installations, for example. There exists a registry entry to get the real name of this folder
- cannot resize the main window
- calling ::Release does NOT return a HRESULT. It is an error to query
.if (eax == S_OK)
after calling ::Release
- is tlbinf32.dll redistributable?
- why do you use an access database. Its flexible, ok, but a simple text file would be better (possibly .INI format?)
- I understand what your tool does, but possibly others will not due to bad documentation.
Hi japheth,
I appreciate you comments.
Best regards
I appreciate you comments.
- folder "Program Files" doesn't exist on german installations, for example. There exists a registry entry to get the real name of this folder
If "Program Files" appears when you click on the menu items Excel or Word then the path is wrong. You choos correct path to any library by listing all libraries and right click on the library you want to access directly. You can choos two libraries.
- cannot resize the main window
I have deliberately made the main window not resizeable. I have not myself found it to be of disadvantage. If you are searching a specific library you can sort by clicking the header.
- calling ::Release does NOT return a HRESULT. It is an error to query
I have to consider what you have written. I will be back to this item.
- is tlbinf32.dll redistributable?
I have not found any licence text so I don't know. Is it better to remove the dll and let the user download it? It is free to download. Here you can read about it.
- why do you use an access database. Its flexible, ok, but a simple text file would be better (possibly .INI format?)
First I had an ini file but I was thinking on querry possibilities and decided to store things in mdb file.
- I understand what your tool does, but possibly others will not due to bad documentation.
My intention was that the tutorial help file would be sufficient for managing the tool. Perhaps it was wrong assumption.
Best regards
- calling ::Release does NOT return a HRESULT. It is an error to query
OK, I understand. The return value of IUnknown::Release is the value of the reference count and it will be released if the value is 0. What I did was to check for success or error. Success or S_OK is equal to 0. That why it worked anyway. I will change to .if eax==0
mov eax,pClass
mov dword ptr[eax],0
.endif
- cannot resize the main window
Now the main window is resizeable.Hi minor28
the following causes a GPF in win98se:
- select "list all libs"
- select "Microsoft Excel 9.0 Object Library"
- click "CLASSES"
- select "_Application"
the following causes a GPF in win98se:
- select "list all libs"
- select "Microsoft Excel 9.0 Object Library"
- click "CLASSES"
- select "_Application"
The GPF emanates from lack of ebx preservation. New upload. If you have an older cpu it will take a while to search excel library. Next time I will change the cursor to "Wait"cursor.
Minor28.
Thank you very much for replying.
You are producing a very nice tool.
regards
ipadilla
Thank you very much for replying.
You are producing a very nice tool.
regards
ipadilla
Hi ipadilla,
I am glad you like it. I have made som minor changes. If you write code with RadAsm IDE you can download ComTool addin from RadAsm Addins section.
Best regards
I am glad you like it. I have made som minor changes. If you write code with RadAsm IDE you can download ComTool addin from RadAsm Addins section.
Best regards
I went to RadAsm site and cannot find the addin.
I'm not sure if it's me or the security where I work, but I can't see any attachments on this board.
Any help would be greatly appreciated!
I'm not sure if it's me or the security where I work, but I can't see any attachments on this board.
Any help would be greatly appreciated!
Sorry for a late answer.
I have not been working with the comtool for a long while.
Attached are the addin and a demo.
I have not been working with the comtool for a long while.
Attached are the addin and a demo.