
Ask HN: What is the license for Windows header files? - ChrisSD
I understand that Windows.h et al are licensed for use in building Windows applications, etc. However I&#x27;m less clear on what the license is for the text of the headers.<p>Are you free to distribute them? What about distribute and modify? The copyright notice in Windows.h merely says &quot;all rights reserved&quot; which sounds meaningless in the context, as that&#x27;s the default anyway and surely they allow some rights to the user.<p>I believe WINE and mingw have their own version of Windows headers but I&#x27;m unsure how those came to be.
======
xeeeeeeeeeeenu
The headers are a part of the Windows SDK, its license is typically located at
C:\Program Files (x86)\Windows Kits\10\Licenses\<version>\sdk_license.rtf

>Are you free to distribute them?

No.

>What about distribute and modify?

No.

>I believe WINE and mingw have their own version of Windows headers but I'm
unsure how those came to be.

Yes, MinGW headers were developed independently and most of them are either in
the public domain or were released under some permissive license.

~~~
tinus_hn
The theory is that copyright applies to expressive content and not to the
functionality. So if you take Microsofts header files and strip the comments
and formatting, the resulting file would not be covered by copyright.

~~~
ChrisSD
Has this theory been tested in similar cases at all or is it entirely untested
ground? Is this perhaps what mingw and WINE did?

~~~
Wowfunhappy
Please correct me if I'm wrong, but I was under the impression this was
exactly what the Oracle vs Google copyright lawsuit was about.

~~~
nikanj
No, that one is about reimplementing an api

~~~
Wowfunhappy
Isn't that basically the same thing? Whether an API itself is expressive
enough to be copyrighted.

------
Crinus
The headers themselves are under copyright, of course, but the definitions
inside them can be copied/reused for interoperability reasons (something that
is especially protected in EU but i think also in US). So while you cannot
distribute the header files, you can write your own parser that generates new
header files (for C or any other language) that are compatible with the
Microsoft header files as long as they aren't the same.

Of course IANAL but AFAIK this is what several projects (especially compilers
and interpreters) that need to hook with other APIs are already doing.

