The MASM Forum

Projects => MASM32 => Full SDK Include Project => Topic started by: TouEnMasm on August 15, 2012, 04:16:27 AM

Title: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on August 15, 2012, 04:16:27 AM
Hello,
Final version for Windows 10 can be found here:
https://github.com/ToutEnMasm71100 (https://github.com/ToutEnMasm71100)

EDIT: ALL links Now refer to the New 'GitHub' page.

version 10.1.(download in one parts,don't view my next post)
It has been made for Win 10.0  and allow to build 64 or 32 bits prog.
He is now able to translate driver headers (km directory)
Support all windows , is a real translate with all features of a windows SDK .
Alignment,Unicode,...........
He is abble to answer the question "What is this and where it is defined",see multiple files translation
Usage:read the readme.rtf file in the zip.
Translate is now in this form:
QuoteUpdateLayeredWindow PROTO hWnd:HWND ,hdcDst:HDC ,pptDst:XMASM ,psize:XMASM ,hdcSrc:HDC ,\
            pptSrc:XMASM ,crKey:COLORREF ,pblend:XMASM ,dwFlags:DWORD

All Prototypes (API and interface) used the standard notation of masm .You have just to follow the SDK help files,usage is the same.

The translation need a very few changes to use what is translate.UNICODE is supported.
Are translated,constants,structures,enums,Interfaces ,prototypes, most common GUID and some macros.A comment (;API) is added before the prototypes to find them quickly(all prototypes are not API).The readme file in the zip say you more.
***************************************************************
This version have made the windows.sdk downloadable on my site
Problem at link solved,Some prototypes have the same name in interfaces and/or are duplicate.
This provide a "error LNK2001: unresolved external symbol"
The title INTERFACE_API_CONFLIT_NOM added in egales.txt is here to solve this

***************************************************************
Before translate anything,have a look at the full set of SDK header files translated (crt 2013 included)
http://masm32.com/board/index.php?topic=563.0 (http://masm32.com/board/index.php?topic=563.0)

VC++ 2008 header's file translated ( CRT )
http://masm32.com/board/index.php?topic=573.0 (http://masm32.com/board/index.php?topic=573.0)
=========================================== 

////////////////////////////////// C++ library //////////////////////////////////////////
The defaut prototype is C for the header of the C++,it's not like that in the SDK.
So you have to manually (use an editor) to change:
PROTO ------> PROTO C
You can also have functions with a decorated name in the library.
Use this tool:
http://masm32.com/board/index.php?topic=580.msg4701#msg4701 (http://masm32.com/board/index.php?topic=580.msg4701#msg4701)

===================== Dynamic load of functions ============
Some functions could be only used by dynamic load of the dll.
It's the case for the opengl extensions.
In other cases,you haven't the lib or this one change too often.
A dynamic load is also an answer in this cases.
Use this tool:
http://masm32.com/board/index.php?topic=581.msg4705#msg4705 (http://masm32.com/board/index.php?topic=581.msg4705#msg4705)

Final version for Windows 10 can be found here:
https://github.com/ToutEnMasm71100 (https://github.com/ToutEnMasm71100)
Some Inlines functions  are contents in crt10_32.lib (64)
Title: Re: A translator for sdk header files
Post by: Gunther on August 15, 2012, 05:14:31 AM
Hi ToutEnMasm,

well done  :t

Gunther
Title: Re: A translator for sdk header files
Post by: Siekmanski on August 15, 2012, 06:41:26 PM
Unfortunately I can't download the file "http://luce.yves.pagesperso-orange.fr/sdkrc7.cab"
Connection to the server is broken when starting downloading or at 99% of the download.
Now and then I try to download it again but no succes.   :(
Title: Re: A translator for sdk header files
Post by: TouEnMasm on August 16, 2012, 12:12:31 AM
QuoteUnfortunately I can't download the file "http://luce.yves.pagesperso-orange.fr/sdkrc7.cab"
it seems there is some problems with my internet provider.I have also some problems to connect my site.
Try later...





Later: part of the translator to download
Title: Re: A translator for sdk header files
Post by: jj2007 on August 16, 2012, 01:00:06 AM
If it wasn't 17 MB, I'd post it here... ::)
Title: Re: A translator for sdk header files
Post by: TouEnMasm on September 16, 2012, 03:08:02 AM
Hello,
I have posted a new version of the translator.

The translation will give you the same advantages as the windows sdk.
Alignment is the same as c++,64 bits ,unicode and ++.
At the instant only the windows sdk had all this.
Other need a modify of there text files.

I have no way to test the 64 bits usage.
Reports on it's use will be usefull.




Title: Re: A translator for sdk header files
Post by: TouEnMasm on September 17, 2012, 06:47:53 AM
 :mrgreen:
I had forgotten to write the 32_64 values in the prototypes.
Mistake corrected.
Title: Re: A translator for sdk header files
Post by: TouEnMasm on September 22, 2012, 04:47:30 AM

New version posted had made the "ready to use sdk 7.1" working exactly as the original windows sdk.
Title: Re: A translator for sdk header files
Post by: GoneFishing on March 16, 2013, 03:43:24 AM
Hello ToutEnMasm!

Thank you for reply and link to your post. I've already downloaded headinc.zip . I'll try it.
I'm making my first steps in MASM and it's important for me to understand how to translate C++ headers to MASM includes.
Title: Re: A translator for sdk header files
Post by: GoneFishing on March 19, 2013, 05:07:49 AM
I've just translated several headers. Your utility is very easy to use and fast. But dbgeng.h has two dependencies which in turn have their own ones and so on ... so I've downloaded your sdkrc7 .cab (without any problems)
Thanks!
Title: Re: A translator for sdk header files
Post by: Magnum on March 19, 2013, 05:50:45 AM
I do not understand how these are used.

Thanks,
              Andy
Title: Re: A translator for sdk header files
Post by: TouEnMasm on September 23, 2014, 05:15:49 PM

New version to adapt it to Windows 8.1
** Update of the list of variables (egales.txt)
     This avoid your favorite nightmare,What is this and where it is who generate errors at compile time.

** Many useless (for masm) defines added by MIDL are filtered.
** The search for duplicates names between api and interfaces fonctions is automatised (cherche_duplicate.txt)
    a 1 is added at the end of the interface name function.Made link happy.
** define values too long for ml are cutted in pieces (max 254).
** one correction  Machin bidule[] generate a dword
and more
Title: Re: A translator for sdk header files
Post by: TouEnMasm on September 25, 2014, 12:46:49 AM

corrected problem with _when_ (generating bad prototypes)
Title: Re: A translator for sdk header files
Post by: TouEnMasm on September 26, 2014, 05:06:06 PM

Posted the version who had made the ready to use sdk 8.1.
It's a little too much filtered to be sure not to fall on a comment.
The file specstrings_undef.sdk is the image of that.
Title: Re: A translator for sdk header files
Post by: TouEnMasm on October 02, 2014, 05:27:44 PM

Added the translation of conditionnal prototypes ,with #if #else #endif inside,I's the more current form.
Added in structure translation of  ,,; ex:RECT rect,recta,rectb;
added translation of #define Fillmystructure {,,,35]
small modified to decrease the number of manual corrections.
Most often,you have to modify duplicate name who can't be corrected all.
Title: Re: A translator for sdk header files
Post by: Gunther on October 02, 2014, 10:05:24 PM
ToutEnMasm,

is it the current zip file under the first post of this thread?

Gunther
Title: Re: A translator for sdk header files
Post by: TouEnMasm on October 03, 2014, 12:16:52 AM

Yes ,he is in the first post.
Title: Re: A translator for sdk header files
Post by: Gunther on October 03, 2014, 02:08:25 AM
Thank you, ToutEnMasm.

Gunther
Title: Re: A translator for sdk header files
Post by: TouEnMasm on October 03, 2014, 04:28:04 AM

corrected a problem with multiple files translation.This is done in a thread and the heap memory was fragmented.There was less variables found and more Unknown(inconnu) generated.
Title: Re: A translator for sdk header files
Post by: TouEnMasm on October 09, 2014, 06:08:22 PM
Added the missing alignment on Union.
Headinc align now in the same way as the c++ instruction
#pragma pack(push,N)   
#pragma pack(pop)

To view the alignment:
#pragma pack(show)   
or
SHOW_ALIGNMENT   STRUCT DEFALIGNMASM
;SHOW_ALIGNMENT size=18h BYTE,1Ah WORD,1CH DWORD,20h QWORD
   zaaaff QWORD ?
   xbaaff BYTE ?
   ycaaff DWORD ?
   wdaaff WORD ?
   qeaaff BYTE ?
   rfaaff QWORD ?
SHOW_ALIGNMENT      ENDS

Title: Re: A translator for sdk header files
Post by: Gunther on October 10, 2014, 04:12:50 AM
Thank you, ToutEnMasm.  :t

Gunther
Title: Re: A translator for sdk header files
Post by: TouEnMasm on November 20, 2014, 09:02:03 PM
Minor changes
Quote
#define SRCCOPY             (DWORD)0x00CC0020 /* dest = source */ ;corrected
#define SRCCOPY             0x00CC0020
_aaaaaaaaaaaaaaaaa              ();corrected
_aaaaaaaaaaaaaaaaa()
The 8.4 version wait the next windows sdk before new changes
Title: Re: A translator for sdk header files
Post by: TouEnMasm on November 21, 2014, 03:12:59 AM
corrected a bug   :mrgreen:
Title: Re: A translator for sdk header files
Post by: Gunther on November 21, 2014, 07:19:48 AM
Hi ToutEnMasm,

thank you for sharing it. Good work.

Gunther
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on October 01, 2015, 07:20:55 PM
New version
Translate is now in this form:
Quote
UpdateLayeredWindow PROTO hWnd:HWND ,hdcDst:HDC ,pptDst:XMASM ,psize:XMASM ,hdcSrc:HDC ,\
         pptSrc:XMASM ,crKey:COLORREF ,pblend:XMASM ,dwFlags:DWORD
Argument of prototype  like "float Number[4]" are translated as structure
Cherche_Duplicate.txt avoid duplicate between  Interface fonctions and api who generate link errors.
some more corrections ..
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on October 12, 2015, 04:49:56 AM

Full update for Windows 10.0 (Cherche_Duplicate.txt who avoid problems at link)
Added a filter on the prototypes Argument. offset:DWORD = aoffset:DWORD
see INCOMPATIBLE in egales.txt,you can modifie the list as you want.
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on December 15, 2015, 07:37:22 PM
added strsafe functions (inline) to the crt lib (Windows 10 inline functions)
macros_forum.inc added ,macros of the masm32 package usable with the translated sdk
small modifies.
error
http://masm32.com/board/index.php?topic=563.msg4563#msg4563 (http://masm32.com/board/index.php?topic=563.msg4563#msg4563)
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on February 14, 2016, 08:27:12 PM
New version (Windows 10 headers)
---- Translate c++ interface , the d2XXX.h will be fully translated.
---- Extended his use to the driver headers.
The translate of structures accept now complex forms with macros and proto.
usual updates,more filters.
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on February 26, 2016, 02:06:56 AM
Further modifies to fulfill the km directorie:
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\km

Further files need to be modifies before translate.
This version give better informations to find wich ( or ) is missed in one block of (())(()))
Macro with structure arguments Inside are not translate.
to do that ,change the c++ macro in c++ structure and rename the translate  a MACRO.

This complex form of structure:
Quote
typedef struct _CLS_SCAN_CONTEXT
{
    CLFS_NODE_ID cidNode;
    PLOG_FILE_OBJECT plfoLog;
    __declspec(align(8)) ULONG cIndex;
    __declspec(align(8)) ULONG cContainers;
    __declspec(align(8)) ULONG cContainersReturned;
    __declspec(align(8)) CLFS_SCAN_MODE eScanMode;
    __declspec(align(8)) PCLS_CONTAINER_INFORMATION pinfoContainer;
   
} CLS_SCAN_CONTEXT, *PCLS_SCAN_CONTEXT, **PPCLS_SCAN_CONTEXT;
is translated like that
Quote
CLS_SCAN_CONTEXT   STRUCT DEFALIGNMASM
   cidNode CLFS_NODE_ID ?
   plfoLog PLOG_FILE_OBJECT ?
__declspec(align(8))
   cIndex DWORD ?
__declspec(align(8))
   cContainers DWORD ?
__declspec(align(8))
   cContainersReturned DWORD ?
__declspec(align(8))
   eScanMode BYTE ?
__declspec(align(8))
   pinfoContainer PCLS_CONTAINER_INFORMATION ?
CLS_SCAN_CONTEXT      ENDS

The translater let's you rewrite the __declspec MACRO as you want (align 8 is enough).


Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on July 01, 2020, 04:54:27 PM
Final version is here in english(US)
https://github.com/ToutEnMasm71100 (https://github.com/ToutEnMasm71100)

The headinc link give you the translator,The SDK10.0 pack give you SDK headers translated and usable immediately.
You can translate the page in further languages with the button at the lefft.
The headers support 64/32 bits,unicode .. and give you the same alignment as the C headers (This avoid many problems).
You can also use Windows switchs (constants) to adapt the headers at your machine.
The more common headers can be used without changes (they are numerous),others need minor modifies to make the compilator happy.
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: LiaoMi on July 03, 2020, 03:52:28 AM
Quote from: TouEnMasm on July 01, 2020, 04:54:27 PMFinal version is here in english(US)
http://luce.yves.pagesperso-orange.fr/header.htm (http://luce.yves.pagesperso-orange.fr/header.htm)
The headinc link give you the translator,The SDK10.0 pack give you SDK headers translated and usable immediately.
You can translate the page in further languages with the button at the lefft.
The headers support 64/32 bits,unicode .. and give you the same alignment as the C headers (This avoid many problems).
You can also use Windows switchs (constants) to adapt the headers at your machine.
The more common headers can be used without changes (they are numerous),others need minor modifies to make the compilator happy.

Hi TouEnMasm,

http://masm32.com/board/index.php?topic=8126.msg89196#msg89196 (http://masm32.com/board/index.php?topic=8126.msg89196#msg89196)
and
http://masm32.com/board/index.php?topic=8126.msg89199#msg89199 (http://masm32.com/board/index.php?topic=8126.msg89199#msg89199)
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on July 03, 2020, 03:25:07 PM

I see than you speak about Size_T  and about PTR ,have you  a modify to ask ?
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: LiaoMi on July 05, 2020, 05:28:32 PM
Quote from: TouEnMasm on July 03, 2020, 03:25:07 PM

I see than you speak about Size_T  and about PTR ,have you  a modify to ask ?

Hi TouEnMasm,

your constant is defined as
SIZE_T = DWORD ; intsafe.h

but should be SIZE_T =XMASM ; intsafe.h

there are a lot of such places in the SDK, manual correction in this case is not possible. And a question from the past, are you going to publish the source code of your converter?
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on July 06, 2020, 03:03:43 AM

Not an error of the translator,must be the include who have changed.
he is defined in basetsd SDK\10.0.19041.0\shared show:

Quote
typedef ULONG_PTR SIZE_T, *PSIZE_T;
typedef LONG_PTR SSIZE_T, *PSSIZE_T;
translated by headinc in :
Quote
SIZE_T TYPEDEF XMASM
PSIZE_T TYPEDEF XMASM
SSIZE_T TYPEDEF XMASM
PSSIZE_T TYPEDEF XMASM

I will correct this one manually.If you find another like that,verify that the translator give not an another translate and post it here.






Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on July 23, 2020, 02:09:44 AM
Hello,
The upper needed modifie has been done in the file basetsd.sdk.
I have had bad surprise using COM in 64 bits and this as needed modifies:
riid:DWORD begin riid:XMASM
rclsid:DWORD begin rclsid:XMASM           and those in all the sdk files.
The corresponding changes (REFIID,..,REF..) had been also made in egales.txt used by the translatorus.
There was trouble with COM in 64 bits,32 is not affect by the change
If you have problem's  don't hesitate to post it here.
I will do my best to arrange this






Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: LiaoMi on October 18, 2020, 08:11:35 PM
Quote from: TouEnMasm on July 06, 2020, 03:03:43 AM

Not an error of the translator,must be the include who have changed.
he is defined in basetsd SDK\10.0.19041.0\shared show:

Quote
typedef ULONG_PTR SIZE_T, *PSIZE_T;
typedef LONG_PTR SSIZE_T, *PSSIZE_T;
translated by headinc in :
Quote
SIZE_T TYPEDEF XMASM
PSIZE_T TYPEDEF XMASM
SSIZE_T TYPEDEF XMASM
PSSIZE_T TYPEDEF XMASM

I will correct this one manually.If you find another like that,verify that the translator give not an another translate and post it here.

Hi TouEnMasm,

this is not true since I compared another constant, I downloaded the latest version of your converter, the file egales.txt contains two constants PSIZE_T = XMASM and SIZE_T = DWORD ; intsafe.h or size_t = DWORD ; intsafe.h, but it should be PSIZE_T = XMASM and SIZE_T = XMASM ; intsafe.h or size_t = XMASM ; intsafe.h. There are a lot of such errors, so there are problems with compilation, correct conversion does not work everywhere, the error example is given above.

Here is the original code from your SDK (WinBase.sdk)...
;API
GlobalAlloc PROTO uFlags:DWORD ,dwBytes:DWORD

but it should be

GlobalAlloc PROTO uFlags:DWORD ,dwBytes:XMASM

:azn:
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on October 20, 2020, 02:23:33 AM
Corrected,size_t SIZE_T, for headinc .Re-translate of Winbase.sdk to take count of the change in sdkrc100 (um).
ADDED the CUNI,CANS and CANS_UNI macro to create data in unicode and switch easily from ansi to UNI.
There is just need to define UNICODE to switch to unicode for the entire source.
Sample here http://masm32.com/board/index.php?topic=1796.msg19015#msg19015 (http://masm32.com/board/index.php?topic=1796.msg19015#msg19015)

For sdkrc100 and translatorus here:
https://github.com/ToutEnMasm71100 (https://github.com/ToutEnMasm71100)

Some Inlines functions  are contents in crt10_32.lib (64) ; -:\sdkrc100\crt_lib\IX86\release\crt10_32.lib printf and more
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on January 18, 2021, 03:42:22 AM

added extraction of prototypes in inlines functions,very useful now with recents headers,version 10.3.

Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: jj2007 on January 18, 2021, 04:43:39 AM
Good to see somebody is still coding here, Yves :thumbsup:
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on April 17, 2021, 04:52:15 PM
modify the translation of  :
unsigned char EncryptionState[15][16];   

https://github.com/ToutEnMasm71100 (https://github.com/ToutEnMasm71100)
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: LiaoMi on April 17, 2021, 09:20:16 PM
Quote from: TouEnMasm on April 17, 2021, 04:52:15 PMmodify the translation of  :
unsigned char EncryptionState[15][16];   

http://luce.yves.pagesperso-orange.fr/header.htm (http://luce.yves.pagesperso-orange.fr/header.htm)

Hi TouEnMasm,

I don't see any fixes in SDK? Has something changed there? And there are no changes in the source section yet.
http://luce.yves.pagesperso-orange.fr/SourceCode.htm
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on April 17, 2021, 11:03:30 PM
The fix is in headinc (10.4) who translate it now the good way (you can verify this translating test.txt).
Without promise,I will do what i can to modify the sdk files.
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on April 19, 2021, 03:01:02 AM
I have corrected some  importants files in the header package.WinUser wincrypt ...
In headinc,I have made a full adaptation for  multi dimensionnal structures and constantes.
4 levels are needed by the sdk ,headinc can do 5.
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on May 26, 2021, 04:32:37 PM
Hello,
Headinc hab been updated to translate the last sdk 10.0.19041.0
The translation of the typedef had been re-writed and use the ptr instead of changing it in XMASM
What is pointed on by the ptr is shown in comment to avoid the questions of the compiler.

The sdkrc100 begin a carefull update to the  10.0.19041.0 version.
At this time,only the files used by windows.h (80 files) and the CRT(vc dir) had beeen changed.
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on May 27, 2021, 04:18:39 PM
Hello,
I made an oversight in the 10.6 version,corrected in the 10.7
I have also eliminates the risk with annotations in structures.
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: LiaoMi on May 27, 2021, 06:10:46 PM
Quote from: TouEnMasm on May 27, 2021, 04:18:39 PMHello,
I made an oversight in the 10.6 version,corrected in the 10.7
I have also eliminates the risk with annotations in structures.

Hi TouEnMasm,

we will test it, thanks for your work  :thumbsup:

P.S.
Did you check knownfolders.h?
http://masm32.com/board/index.php?topic=9282.0 (http://masm32.com/board/index.php?topic=9282.0)
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on May 28, 2021, 02:01:41 AM

Thanks for your help,I have made a last change in the code ,The typedef multi-dimensionnal are now translated as strucrure and usable by MASM.
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on May 28, 2021, 11:40:37 PM
 :greensml:
I hope last change this time,Some structures wasn't recognize as there.Corrected.
Corrected thread problem,some files wasn't translate (list of files).
A very few number of files don't want to be translated in a list (threaded) and can be only translated as individual.
Those are
Quote
H:\Program Files\editmasm\ref\outils\translator\windows.phone.restricted.cellular.rcspresence.h
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\abi\windows.phone.restricted.cellular.videotelephony.h
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ndis\version.h
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\km\hbapiwmi.h
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\km\iscsidef.h
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\km\iscsiop.h
I don't know for what on 2000 files those ones don't want to be translate in a thread.


Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on May 31, 2021, 11:55:00 PM
Hello,
Hope was lost but not the result.
This one:
Filter the MIDL_PASS Lines
Filter the VC++ structures and made a report in the journal.txt.
Solve the thread problem (Not enough memory)
                                        Three files are still resisting to the translation (group files mod,list) ,they are in asm (kxarm..).
Must stay the usual errors to correct.
* Constants not declared        (version number ,you can use an equate with the first term of the comparison GE)
* redefinitions of symbols  name = aname ....conflicting definitions

Tested on the whole sdk 10.0.19041.0
Don't be afraid by the needed corrections,one ; to put definitions in comment is very usefull.
Chance is also possible,It's it work at the first time,It's not me but the chance.


Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on June 17, 2021, 07:22:30 PM
Hello,
The c++ use complex rules to give a size at the structures with bitfields ,record for masm.
light explain  are here https://docs.microsoft.com/en-us/cpp/cpp/cpp-bit-fields?view=msvc-160 (https://docs.microsoft.com/en-us/cpp/cpp/cpp-bit-fields?view=msvc-160)
The 11.3 version of headinc give the correct size for those structures.
https://github.com/ToutEnMasm71100 (https://github.com/ToutEnMasm71100)
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: LiaoMi on June 18, 2021, 06:15:34 AM
Quote from: TouEnMasm on June 17, 2021, 07:22:30 PMHello,
The c++ use complex rules to give a size at the structures with bitfields ,record for masm.
light explain  are here https://docs.microsoft.com/en-us/cpp/cpp/cpp-bit-fields?view=msvc-160 (https://docs.microsoft.com/en-us/cpp/cpp/cpp-bit-fields?view=msvc-160)
The 11.3 version of headinc give the correct size for those structures.
http://luce.yves.pagesperso-orange.fr/header.htm (http://luce.yves.pagesperso-orange.fr/header.htm)

Hi TouEnMasm,

https://github.com/ToutEnMasm71100/editMasm/blob/main/editmasm.7z (https://github.com/ToutEnMasm71100/editMasm/blob/main/editmasm.7z)

La page que vous demandez est introuvable.
Mais il y a des solutions :

vérifiez l'adresse de la page
précisez-nous votre demande
Vous avez aussi la possibilité de retourner en page d'accueil.
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on June 18, 2021, 03:23:34 PM
Mistake of mine,corrected.
The compressed file can be a zip or a 7z (for various reasons)
Better is to connect to the page https://github.com/ToutEnMasm71100/editMasm (https://github.com/ToutEnMasm71100/editMasm)

Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: LiaoMi on June 18, 2021, 07:02:56 PM
Quote from: TouEnMasm on June 18, 2021, 03:23:34 PM
Mistake of mine,corrected.
The compressed file can be a zip or a 7z (for various reasons)
Better is to connect to the page http://luce.yves.pagesperso-orange.fr/Editmasm.htm (http://luce.yves.pagesperso-orange.fr/Editmasm.htm)

The link does not work in any conditions  :sad:
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on June 18, 2021, 11:22:49 PM
Direct links:
https://github.com/ToutEnMasm71100/editMasm/blob/main/editmasm.7z (https://github.com/ToutEnMasm71100/editMasm/blob/main/editmasm.7z)
https://github.com/ToutEnMasm71100/Translator/blob/main/translatorus.7z (https://github.com/ToutEnMasm71100/Translator/blob/main/translatorus.7z)

I verify if the links works and modify this post if necessary.
EDIT: These are New 'links' to the new GitHub page.
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: HSE on June 18, 2021, 11:49:02 PM
Just in case, is working  :thumbsup:
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on June 24, 2021, 11:51:52 PM
A first translate of the SDK KIT 10.0.19041.0,The very last SDK (2021)
The more comon applications can used it without modifies.
For the others,a few modifies will be needed (Incompatible name,re-definition, ..)
Headinc had been also modify a little to avoid too many corrections.
Too many errors in the file,suspect used of C++ structures not translatable.


Tracking errors:
QuoteSome files use RESERVED as an EQU ,this generate errors with Structures who use it as local.
The better thing to do is to rename those EQU as you want.They are on those files,made it manually.
H:\sdkrc100\shared\bdatypes.sdk
Nombre de reserved : 1        ;corrected
H:\sdkrc100\um\encdec.sdk
Nombre de reserved : 2        ;corrected
H:\sdkrc100\um\Icm.sdk
Nombre de reserved : 1        ;corrected
H:\sdkrc100\um\minidumpapiset.sdk
Nombre de reserved : 2        ;--------- ReservedStream0 not dangerous
H:\sdkrc100\um\sessdirpublictypes.sdk
Nombre de reserved : 1        ;RESERVED_FOR_LEGACY

The result is a very less number of problems


Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: LiaoMi on June 25, 2021, 08:09:29 AM
Quote from: TouEnMasm on June 24, 2021, 11:51:52 PM
A first translate of the SDK KIT 10.0.19041.0,The very last SDK (2021)
The more comon applications can used it without modifies.
For the others,a few modifies will be needed (Incompatible name,re-definition, ..)
Headinc had been also modify a little to avoid too many corrections.
Too many errors in the file,suspect used of C++ structures not translatable.
http://luce.yves.pagesperso-orange.fr/sdkrc100_KIT_10.0.19041.0.7z (http://luce.yves.pagesperso-orange.fr/sdkrc100_KIT_10.0.19041.0.7z)

Tracking errors:
Quote
Some files use RESERVED as an EQU ,this generate errors with Structures who use it as local.
The better thing to do is to rename those EQU as you want.They are on those files,made it manually.
H:\sdkrc100\shared\bdatypes.sdk
Nombre de reserved : 1       ;corrected
H:\sdkrc100\um\encdec.sdk
Nombre de reserved : 2       ;corrected
H:\sdkrc100\um\Icm.sdk
Nombre de reserved : 1       ;corrected
H:\sdkrc100\um\minidumpapiset.sdk
Nombre de reserved : 2       ;--------- ReservedStream0 not dangerous
H:\sdkrc100\um\sessdirpublictypes.sdk
Nombre de reserved : 1       ;RESERVED_FOR_LEGACY

The result is a very less number of problems



Hi TouEnMasm,

I will check on old projects, thanks  :thumbsup:

Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on July 06, 2021, 12:44:58 AM
Hello,
major Updates in the 11.8 version.
*** All prototypes have Now a  a defined call (cproto or  stdproto ) defined in the translated32(64).inc.
Those two files  are in the package and must be updated https://github.com/ToutEnMasm71100/Translator/blob/main/translatorus.7z (https://github.com/ToutEnMasm71100/Translator/blob/main/translatorus.7z)
A new section DEFINE_PROTO in the egales.txt allow the user to change that.
The start of the line give The masm definition defined in the translate32(64).inc ,just after follow The .h defines in the same lines.
*** A new method is in use to filter the argument in the structure,function ,interface ...
The method never failed except when a reference isn't found in the argument.
The Journal.txt show "failed to find Argument FiltrageArgumentPrototype"  .
This happen when the first name of a structure ior union is in used instead of the last.
On 1200 files i have find about ten of them.You need to modify the source header to correct the error.
***** corrected the declare_interface translation and made some modifies for less and less modifies to do.
***** long long,long double  are translated  correctly. If you find other double or triple (they exist) values just say it here.





Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on July 08, 2021, 12:43:17 AM
Corrected a mistake that made appear function without declaration of call  wthout the word proto.
The new version verify that the function don't use VARARG if it isn't a C call and made the correction if needed.
You see "XXX Error on call ... VARARG must be C ,corrected " in journal.txt.
You can let things are they are or made a search to find the call declaration and add it in the section DEFINE_PROTO in egales.txt



Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on July 11, 2021, 06:48:06 PM

New things added:
* The sdk use an opaque pointer with no structure for reasons only Known by microsoft.
   To solve that and avoid many errors generated I have added an INVISIBLE empty structure where those pointer can use (she is in translateXX.inc).
* structures have two names,the last is the more used but this generate errors when the first is used.
   To solve that i have added a control to only use the last name.All first name disappear in the translation.
* corrected an error who made some incompatible names not replaced

I have tested this version on the bigger files I have found and the result show that things are really more simple to do
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: LiaoMi on July 11, 2021, 09:40:02 PM
Hi TouEnMasm,

thanks, updated successfully, testing is in progress  :thup:
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: LiaoMi on July 13, 2021, 09:01:27 PM
Hi TouEnMasm,

in the previous version, the "Security" example was compiled without problems, in this version an error "Error A2080: Block nesting error: if-else" occurs.
Translated Windows SDK 10.0.19041.0 32 bits
ZUT
HIMAGELIST defined
security.asm : Error A2080: Block nesting error: if-else
security.asm: 261 lines, 1 passes, 1255 ms, 0 warnings, 1 errors

        include translate32.inc
        include windows.inc
        include WinUser.inc
        include ShlObj.inc
        include WinBase.inc
        include stdio.inc
        include sysinfoapi.inc
        include timezoneapi.inc
       
        includelib ntdll.lib
        includelib ntdllp.lib
       
        includelib kernel32.Lib
        includelib User32.Lib
        includelib ntoskrnl.lib
        includelib Advapi32.lib
       
        includelib ucrt.lib
    include stdio.inc
    include conio.inc

    include accCtrl.inc
    include aclapi.inc
    includelib crt10_32.lib

_getch
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/getch-getwch?view=msvc-160 (https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/getch-getwch?view=msvc-160)
Syntax C
int _getch( void );
wint_t _getwch( void );

Is this the correct conversion?
_getch PROTO cproto void:DWORD

it was like
_getch PROTO

No prototypes are added here from
include stdio.inc

security.asm(228) : Error A2160: INVOKE requires prototype for procedure <- printf in stdio.inc
Translated Windows SDK 10.0.19041.0 32 bits
ZUT
HIMAGELIST defined
security.asm(228) : Error A2160: INVOKE requires prototype for procedure
security.asm(256) : Error A2147: Too few arguments to INVOKE: _getch
security.asm : Error A2080: Block nesting error: if-else
security.asm: 261 lines, 1 passes, 843 ms, 0 warnings, 3 errors

I have already written above, I added the prototypes by hand, therefore the error is not visible there.
printf PROTO cproto _Format:XMASM, :VARARG
_getch PROTO cproto void:DWORD
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on July 14, 2021, 03:24:16 AM
It's the new method in use who have re-make the problem.
the void:DWORD must be replace by nothing
I have modified headinc in the translatrorUS download.
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on July 16, 2021, 03:26:45 AM
corrected also the sdkrc100_KIT_10.0.19041.0.7z
https://github.com/ToutEnMasm71100/FullSdkTranslate/blob/main/sdkrc100_KIT_10.0.19041.0.7z (https://github.com/ToutEnMasm71100/FullSdkTranslate/blob/main/sdkrc100_KIT_10.0.19041.0.7z)
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: LiaoMi on July 18, 2021, 04:28:27 AM
Hi TouEnMasm,

to carry out quality control I used the program - Compare It! 4.2 Unicode - https://www.grigsoft.com/files.htm (https://www.grigsoft.com/files.htm), Portable - https://www.grigsoft.com/wincmp4u.zip (https://www.grigsoft.com/wincmp4u.zip)

Here is a ready-made comparison of the old version and the new one - https://gofile.io/d/6ZzwUh (https://gofile.io/d/6ZzwUh)

What is CPROTO? What does co-writing mean? - YourProc PROTO CPROTO

YourProc PROTO C arg1:DWORD,arg2:DWORD,extra_args:VARARG
YourProc PROTO CPROTO arg1:DWORD,arg2:DWORD,extra_args:VARARG

    ····_vcscanf_l PROTO·cproto _Format:XMASM ,_Locale:XMASM ,_ArgList:XMASM    43    _vcscanf_l PROTO _Format:XMASM ,_Locale:XMASM ,_ArgList:XMASM
44    ····_vcscanf PROTO·cproto _Format:XMASM ,_ArgList:XMASM    44    _vcscanf PROTO _Format:XMASM ,_ArgList:XMASM
45    ····_vcscanf_s_l PROTO·cproto _Format:XMASM ,_Locale:XMASM ,_ArgList:XMASM    45    _vcscanf_s_l PROTO _Format:XMASM ,_Locale:XMASM ,_ArgList:XMASM
46    ····_vcscanf_s PROTO·cproto _Format:XMASM ,_ArgList:XMASM    46    _vcscanf_s PROTO _Format:XMASM ,_ArgList:XMASM
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on July 18, 2021, 05:01:54 PM
Cproto is defined in the translate(XX).inc
in 32 ,   cproto equ <C> ,   stdproto equ <stdcall>       
in 64    ,    cproto equ <fastcall> , stdproto equ <fastcall>

The use of the constant cproto allow to change the type of call  of  the proto
in the crt ,all pprototypes are c prototypes with a variant in the name.
The various names for a same call don't help the translation.
It's for that i have added a DEFINE_PROTO section in egales.txt to allow the user to modify the type all call.
It is those two lines:
cproto,__cdecl,__CRTDECL,U_EXPORT2,LDAPAPI,STDMAPIINITCALLTYPE,MI_MAIN_CALL,WINAPIV,RPC_VAR_ENTRY
stdproto,__stdcall,CALLBACK,WINAPI,APIPRIVATE,PASCAL, __RPC_API,__RPC_USER,__RPC_STUB,RPC_ENTRY
When an another is found there is just to add this one in one of the two lines and the translate is modify.



Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: LiaoMi on July 18, 2021, 10:30:55 PM
Hi TouEnMasm,

thanks for the clarification :thup:

A couple more questions, there is an example:
typedef long  Test_LONG64a;
typedef unsigned long  Test_LONG64b;
typedef long long int  Test_LONG64c;
typedef unsigned long long int  Test_LONG64d;
typedef __int64  Test_LONG64e;
typedef unsigned __int64  Test_LONG64f;

                                                         
#if Test_SIZEOF_LONG == ( 64 / Test_CHAR_BIT )

#define Test_LONG64
#define Test_INT64   long
#define Test_UINT64  unsigned long

#elif !defined( __STDC__ ) || defined( Test_CONFIG_OPTION_FORCE_INT64 )

#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L

#define Test_LONG64
#define Test_INT64   long long int
#define Test_UINT64  unsigned long long int


#elif defined( _MSC_VER ) && _MSC_VER >= 900

#define Test_LONG64
#define Test_INT64   __int64
#define Test_UINT64  unsigned __int64

#elif defined( __BORLANDC__ )

#define Test_LONG64
#define Test_INT64   __int64
#define Test_UINT64  unsigned __int64

#elif defined( __WATCOMC__ )

#elif defined( __MWERKS__ )

#define Test_LONG64
#define Test_INT64   long long int
#define Test_UINT64  unsigned long long int

#elif defined( __GNUC__ )

#define Test_LONG64
#define Test_INT64   long long int
#define Test_UINT64  unsigned long long int

#endif

#endif

#ifdef Test_LONG64
  typedef Test_INT64   Test_Int64;
  typedef Test_UINT64  Test_UInt64;
#endif


translated as

Test_LONG64a TYPEDEF DWORD

Test_LONG64b TYPEDEF DWORD

Test_LONG64c TYPEDEF DWORD

Test_LONG64d TYPEDEF DWORD

Test_LONG64e TYPEDEF QWORD

Test_LONG64f TYPEDEF QWORD

IF  Test_SIZEOF_LONG EQ (64 / Test_CHAR_BIT)
Test_LONG64 equ
Test_INT64 equ < long>
Test_UINT64 equ < unsigned long>
ELSEIF  NOTDEFINED( __STDC__ ) OR DEFINED( Test_CONFIG_OPTION_FORCE_INT64 )
IF DEFINED( __STDC_VERSION__ ) AND  __STDC_VERSION__ GE 199901
Test_LONG64 equ
Test_INT64 equ < long long int>
Test_UINT64 equ < unsigned long long int>
ELSEIF DEFINED( _MSC_VER ) AND  _MSC_VER GE 900
Test_LONG64 equ
Test_INT64 equ < __int64>
Test_UINT64 equ < unsigned __int64>
ELSEIF DEFINED( __BORLANDC__ )
Test_LONG64 equ
Test_INT64 equ < __int64>
Test_UINT64 equ < unsigned __int64>
ELSEIF DEFINED( __WATCOMC__ )
ELSEIF DEFINED( __MWERKS__ )
Test_LONG64 equ
Test_INT64 equ < long long int>
Test_UINT64 equ < unsigned long long int>
ELSEIF DEFINED( __GNUC__ )
Test_LONG64 equ
Test_INT64 equ < long long int>
Test_UINT64 equ < unsigned long long int>
ENDIF
ENDIF
IFDEF Test_LONG64
Test_Int64 TYPEDEF Test_INT64

Test_UInt64 TYPEDEF Test_UINT64

ENDIF


long long int and unsigned long long int have wrong values - DWORD
typedef long long int  Test_LONG64c;
typedef unsigned long long int  Test_LONG64d;

long long   8   none (but equivalent to __int64)   -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
unsigned long long   8   none (but equivalent to unsigned __int64)   0 to 18,446,744,073,709,551,615

Specifier(s)         Type
-------------    -------------
long long int    long long int
long long        long long int
long int         long int
long             long int

Next flaw (see further examples above  :arrow_up:)

#define Test_INT64
#define Test_INT64   long
#define Test_UINT64  unsigned long


translated as

Test_LONG64 equ
Test_INT64 equ < long>
Test_UINT64 equ < unsigned long>


but it should be

Test_LONG64 equ 1; TRUE
Test_INT64 equ DWORD
Test_UINT64 equ   DWORD


or

Test_LONG64 equ
Test_INT64 equ < long long int>
Test_UINT64 equ < unsigned long long int>


but it should be

Test_LONG64 equ 1
Test_INT64 equ QWORD
Test_UINT64 equ QWORD


it does not take into account the definition of a variable via #define  :tongue:
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on July 19, 2021, 12:10:54 AM
The translator as been made for the windows sdk header (not too many old ) and i see that those you show aren't.
__BORLANDC__ isn't one of those and there is syntax in the header you show who aren't Visual C,C++ header.
The translator couldn't translate any c headers,only those of  the visual c,c++ microsoft.
He couldn't be use also on the header of the project without corrections,they don't follow the same rules.
He could be use only on the sdk header.
After you can also made a census on the triple words used as variable, I will get it and made a correction.
They are very few for evident reasons (headinc know the long long and the double long used in the sdk).
Can you tell me what is a int char double ? (he can exist somewhere !).
A unique chance to translate that is to put it in a c code.

The SDK more often use typedef to define variables not define.




Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: LiaoMi on August 01, 2021, 08:09:23 PM
Quote from: TouEnMasm on July 19, 2021, 12:10:54 AMThe translator as been made for the windows sdk header (not too many old ) and i see that those you show aren't.
__BORLANDC__ isn't one of those and there is syntax in the header you show who aren't Visual C,C++ header.
The translator couldn't translate any c headers,only those of  the visual c,c++ microsoft.
He couldn't be use also on the header of the project without corrections,they don't follow the same rules.
He could be use only on the sdk header.
After you can also made a census on the triple words used as variable, I will get it and made a correction.
They are very few for evident reasons (headinc know the long long and the double long used in the sdk).
Can you tell me what is a int char double ? (he can exist somewhere !).
A unique chance to translate that is to put it in a c code.

The SDK more often use typedef to define variables not define.

Hi TouEnMasm,

this is partially true, since overriding of types is a standard feature of the language, but I agree that such code does not appear in the visual studio.

QuoteCan you tell me what is a int char double ? (he can exist somewhere !).
It seems to me that this combination is impossible, since in a simple definition the integer expands in the type, there is no similar expansion here, since the types are completely different.

Type char is a distinct type that has an implementation-defined choice of "signed char" or "unsigned
char" as its underlying type. The values of type char can represent distinct codes for all members of
the implementation's basic character set. The three types char, signed char, and unsigned char are
collectively called ordinary character types. The ordinary character types and char8_t are collectively called
narrow character types. For narrow character types, each possible bit pattern of the object representation
represents a distinct value.

Types bool, char, wchar_t, char8_t, char16_t, char32_t, and the signed and unsigned integer types are
collectively called integral types. A synonym for integral type is integer type.

https://docs.microsoft.com/en-us/cpp/cpp/char-wchar-t-char16-t-char32-t?view=msvc-160 (https://docs.microsoft.com/en-us/cpp/cpp/char-wchar-t-char16-t-char32-t?view=msvc-160)


Kinds of literals
1 There are several kinds of literals.19
literal:
integer-literal
character-literal
floating-point-literal
string-literal
boolean-literal
pointer-literal
user-defined-literal
5.13.2 Integer literals [lex.icon]
integer-literal:
binary-literal integer-suffixopt
octal-literal integer-suffixopt
decimal-literal integer-suffixopt
hexadecimal-literal integer-suffixopt
binary-literal:
0b binary-digit
0B binary-digit
binary-literal 'opt binary-digit
octal-literal:
0
octal-literal 'opt octal-digit
decimal-literal:
nonzero-digit
decimal-literal 'opt digit
hexadecimal-literal:
hexadecimal-prefix hexadecimal-digit-sequence
binary-digit: one of
0 1
octal-digit: one of
0 1 2 3 4 5 6 7
nonzero-digit: one of
1 2 3 4 5 6 7 8 9
hexadecimal-prefix: one of
0x 0X
hexadecimal-digit-sequence:
hexadecimal-digit
hexadecimal-digit-sequence 'opt hexadecimal-digit
hexadecimal-digit: one of
0 1 2 3 4 5 6 7 8 9
a b c d e f
A B C D E F
integer-suffix:
unsigned-suffix long-suffixopt
unsigned-suffix long-long-suffixopt
long-suffix unsigned-suffixopt
long-long-suffix unsigned-suffixopt
unsigned-suffix: one of
u U
long-suffix: one of
l L
long-long-suffix: one of
ll LL
Title: Re: A translator for sdk header files (64 and 32 bits translate)
Post by: TouEnMasm on August 02, 2021, 01:51:35 AM

I agree that a translator who don't cover all the forms  of code in use not only in the sdk headers but also in the code (header"s code)
is limited .The problem is simple:
JUST DO IT
I have made  some corrections in bigers file of [/url]http://luce.yves.pagesperso-orange.fr/sdkrc100_KIT_10.0.19041.0.7z[/url]
That will be enough for some times.
usable without  modifies (list not complete)

include OCIdl.sdk
include WindowsSearchErrors.sdk
include d3d11sdklayers.sdk
include imapi2fs.sdk
include fsrmpipeline.sdk
include d3d11_4.sdk
include wmcodecdsp.sdk
include netfw.sdk
include SearchAPI.sdk
include WindowsSearchErrors.sdk
include d3dukmdt.sdk
include ocidl.sdk
include WinBase.sdk
include WdsTptMgmt.sdk
include bdaiface.sdk
include ddraw.sdk
include ShObjIdl.sdk
include UIAnimation.sdk
include xenroll.sdk
include wingdi.sdk
include cscobj.sdk
include DbgModel.sdk
include d3d10.sdk
include msfeeds.sdk
include ObjIdlbase.sdk
include mfobjects.sdk
include UIAutomationCore.sdk
include d3d11_1.sdk
include dinput.sdk
include mbnapi.sdk
include MMC.sdk

include fsrmscreen.sdk
include miniport.sdk   ;utilise C++ structures
include minitape.sdk   ;    utilise C++ structures
include taskschd.sdk
include ExDisp.sdk
include urlmon.sdk
;#define CCH_WMDM_PROPNAME(sz) (sizeof(sz)/sizeof(sz[0]))
include vds.sdk
include winsync.sdk
include imapi2.sdk
include wincodec.sdk
include AppxPackaging.sdk
include activdbg.sdk
include nserror.sdk
include WbemDisp.sdk
include d3d11_3.sdk
include ShlDisp.sdk
include PortableDevice.sdk
include mfmediaengine.sdk
include pla.sdk
include CommCtrl.sdk
include ClusApi.sdk

include PrinterExtension.sdk

include msinkaut.sdk
include ObjIdl.sdk
include rtccore.sdk
include MSClus.sdk
include gpmgmt.sdk
include msctf.sdk
include adoint.sdk
include DvbSiParser.sdk
include adoint_Backcompat.sdk
include WinUser.sdk
include TOM.sdk
include msxml.sdk
include strmif.sdk
include segment.sdk
include sapi51.sdk
include wuapi.sdk
include consoleapi.sdk
include consoleapi2.sdk
include consoleapi3.sdk
include Iads.sdk
include FaxComEx.sdk
include wmsdkidl.sdk
include tuner.sdk
include oledb.sdk
include Tapi3if.sdk
include MqOaI.sdk
include MsHtmdid.sdk
include propkey.sdk
include ComSvcs.sdk
include icui18n.sdk
include d3d11.sdk
include azroles.sdk
include winioctl.sdk
include wmp.sdk
include sapi53.sdk
include propidl.sdk
include olectl.sdk
include icucommon.sdk
include AudioEngineEndpoint.sdk
include audiomediatype.sdk
include dxgi.sdk
include dxgi1_3.sdk
include dxgi1_4.sdk
include fwptypes.sdk
include iketypes.sdk
include ntddndis.sdk
include ntdef.sdk
include reshub.sdk
include rpc.sdk
include rpcdce.sdk
include rpcndr.sdk
include xpsobjectmodel.sdk
include eventdetectoroemadapter.sdk

include sensorsdef.sdk
include specstrings.sdk

include strsafe.sdk
include tdi.sdk
include  in6addr.sdk
include stdiostr.sdk
include animationcoordinator.sdk
include Wich_include.sdk


need to be modifies before translation

;----------------------------include microsoft.diagnostics.appanalysis.sdk
;----------------------------include WebServices.sdk
;----------------------------include esent.sdk
;----------------------------include mi.sdk ;_MI_ContextFT MI_ParameterSetFT
;------------------------- include mswmdm.sdk      static ++
;----------------------------include d3D10umddi.sdk


others need tests