News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

Headers V2.0 alpha

Started by donkey, March 22, 2009, 02:48:30 AM

Previous topic - Next topic

donkey

I have uploaded a preliminary test of the new 32/64 header files. The original 32 bit ones are still the current version available from the website however the following link is for the new set..

http://www.quickersoft.com/donkey/headers/headers2.zip

They feature switchable 32 bit and 64 bit definitions for structures and COM interfaces.
A new windef.h file that sets new data types (PTR, HANDLE, LPARAM etc...)
A lot of bugs were found and corrected
Better handling of unnamed nested structures and unions
A few new switches, most notably WIN64
Separation of the UNICODE and STRINGS UNICODE switches to match GoAsm documentation
A new VISTA switch that will add hundreds of new VISTA only definitions and expand structures for VISTA

There are bound to be quite a few missed definitions and badly defined structures, for that reason it is only in alpha release. All bug reports should be posted in this thread.

Note GoAsm version 5605c is required for this release. It is available in this thread

Please no MASM posts !!
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

UtillMasm

Help2 Viewer v0.6.3.9
GoAsm v0.56.5c
----------------------
C:\GoASM\Bin\GoAsm.EXE /d UNICODE  "Help2 Viewer.asm"

GoAsm.Exe Version 0.56.5c - Copyright Jeremy Gordon 2001/9 - JG@JGnet.co.uk

Warning .......................
Line 13 of the include file msxml.h:-
Include file referred to more than once and therefore ignored:-
   #include "unknwn.h"
Output file: Help2 Viewer.obj

Make finished.
--------------------
Just report this.

donkey

Quote from: UtillMasm on March 22, 2009, 04:19:55 AM
great!

Hi UtilMasm,

Still a long way to go, the expansion required nearly 200K of new definitions and over 100 new structures as well as a lot of interfaces. Almost every aspect of the header project has been affected in what amounts to nearly 3 months of editing so there are going to be a lot of errors but I have built in more flexibility this time by using data types so corrections should be easier. For now Vista support is limited to the core files, that is all files in windows.h and their derivatives but that encompasses almost all programming needs except for a few very esoteric applications. For Win64 the same applies except that all COM interfaces have been upgraded as well as many of the non-core files. For things like IA64 and AMD64 the internal and low level structures (ie CONTEXT) are done but need some testing.

I have seen that warning, I have a typo in the MSXML.H file, the following line

#IFNDEF UNKNOWN_H

should be

#IFNDEF UNKNWN_H
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

donkey

New upload, took care of the bug above as well as a problem with including GDIPlus, it would reset the IUnknown interface to 32 bit affecting all COM interfaces.
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

Mark Jones

Thanks for the hard work Donkey. 700+kb, wheeeew that's a lot of static data.
"To deny our impulses... foolish; to revel in them, chaos." MCJ 2003.08

donkey

Quote from: Mark Jones on March 23, 2009, 06:00:40 AM
Thanks for the hard work Donkey. 700+kb, wheeeew that's a lot of static data.

Hi Mark,

I have some 2 MB that will be added in the next couple of weeks, mshtml.h alone will be over a meg and now stands at around 20% complete. In all I am hoping to keep the entire project under 3MB zipped and it looks like it might come in just under the wire, this compared to the 62MB of headers with MSDN that I use as my data source. Aggressive switching is meant to cut down the amount of data GoAsm has to process but it is possible to selectively skip header files by defining them as loaded, for example if you use commdlg.h but don't need the property sheet header file you can use #define PRSHT_H and prsht.h will be skipped. In all headers the name of the file (with an underscore to replace the dot) is used as a flag to indicate whether it has been loaded or not, looking for unused #includes is always a good strategy to make your source a little leaner.

Edgar
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

Ramon Sala

Greetings from Catalonia

donkey

Thanks Ramon.

On a side note:

I don't think I ever mentioned it but since the beginning of the project windows.h has been accumulating notes and useful information, it is always a good idea to read it if you have an issue. In some cases the problem has been foreseen in advance and both the solution and an explanation is available. This has nothing to do specifically with this release but I got an email today with a problem that had been covered in the compatibility notes of windows.h (changes to GUID structure) and it would have saved the user quite a lot of time had he checked the file.

Edgar
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

donkey

Hi All,

New upload to the link above.

Many many many fixes and more files processed. Major changes include imagehlp.h and DbgHelp.h. A major addition is the mshtml.h file and all supporting headers. The original mshtmlc.h file was 3 MB !!! it shrunk to 175 KB after all of the editing (it took nearly a week). Since my 64 bit machine is not available for use in development (work only), I hope to get around to buying a second one next week and should be able to begin testing these files myself. For now any bug reports or omissions would be appreciated...

Edgar
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

UtillMasm


donkey

Quote from: UtillMasm on March 27, 2009, 02:35:14 PM
great! :U

Thanks, hoping you change your name to UtilGoAsm soon  :bg
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

Mark Jones

Thanks Donkey. Hmm curious, can VMWare "run" a 64-bit image on a 32-bit OS?
"To deny our impulses... foolish; to revel in them, chaos." MCJ 2003.08

drizz

VMWare can run 64bit windows as guest on 32bit windows host IIF (if and only if) your processor is 64bit.
The truth cannot be learned ... it can only be recognized.

donkey

My dev machine has been reduced to my AMD Sempron 3000+, a 32 bit machine, ever since my P4 died. For security reasons I can't use my AMD Athlon64 box for anything but work but I am planning to buy a second one just for development, the sempron is a good processor but I need more horse power and 64 bit is becoming essential in order to test the headers.

By the way, I am thinking about completely dropping support for Windows 9x and Windows NT4, existing entries will not be changed but any new structs etc.. will not have any switches for these OS versions. This will especially affect structures with cbSize where the size for Win9x/NT4 would not be calculated properly with the SIZEOF operator, it would have to be entered manually. Is there any reason to continue supporting these OS versions ?

As an example of the compleixity of continued Win9x/NT4 support the NOTIFYICONDATA structure provides enlightenment...

NOTIFYICONDATAA STRUCT
cbSize DD
hWnd HANDLE
uID DD
uFlags DD
uCallbackMessage DD
hIcon HANDLE
#IFDEF WIN9X
szTip DB 64 DUP
#ELSE
#IFDEF WINNT4
szTip DB 64 DUP
#ELSE
// WIN2K +
szTip DB 128 DUP
dwState DD
dwStateMask DD
szInfo DB 256 DUP
UNION
uTimeout DD
uVersion DD
ENDUNION
szInfoTitle DB 64 DUP
dwInfoFlags DD
#IFDEF WINXP
guidItem GUID <>
#ENDIF
#IFDEF VISTA
guidItem GUID <>
hBalloonIcon HANDLE
#ENDIF
#ENDIF
#ENDIF
ENDS
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

BlackVortex

Ahh, the damn NOTIFYICONDATA !  Took me 2 hours to show a system tray balloon tip properly, I got totally lost, and MASM32's header is wrong, had to fix it.

Thanks for your work by the way, keep at it.