From: ilmcuts <il...@gm...> - 2008-07-30 17:55:08
|
Hi, ##MinGW directed me here. Turns out we use a few functions in our project that are documented in MSDN but missing in win32api. How do we get these added? Here are all I could come up with right now: * SHFindFiles [shell32] * ILCreateFromPath (A and W) [shell32] * ILFree [shell32] * SHLockShared [shlwapi] * SHUnlockShared [shlwapi] * IsOS (and #defines) [shlwapi] There are probably more, but these are what our build chokes on right now. We tend to use lots of relatively obscure functions, heh. -ilmcuts |
From: Brian D. <br...@de...> - 2008-07-30 18:27:24
|
ilmcuts wrote: > ##MinGW directed me here. Turns out we use a few functions in our > project that are documented in MSDN but missing in win32api. How do we > get these added? Here are all I could come up with right now: You get them added the same way you do with any open source project, by submitting patches: 1. Check out the w32api source: cvs -d:pserver:an...@so...:/cvs/src \ co -d w32api src/winsup/w32api 2. Add the missing function exports to the appropriate .def file. Note that they must be stdcall decorated, which means they should include the @nn suffix corresponding to the number of bytes pushed onto the stack for the arguments. If you don't know this, you can find it out easily enough by creating a simple testcase that declares and calls the function and then looking at the output of gcc -S. 3. Add the missing prototypes to the corresponding headers, ensuring that if the function is not available on all versions of windows that its declaration is guarded by the appropriate _WIN32_WINNT preprocessor version check. 4. Rebuild w32api and test that the resulting libs and headers function. 5. Create a unidiff (-u) of the changes you made and write a ChangeLog entry. See the GNU coding standards or look at the existing ChangeLog entries for the exact format required. Don't include changes to the ChangeLog entry itself with the diff because the ChangeLog file usually churns often and it will cause the patch to fail to apply. Just include it loose with the patch. 6. Submit your patch + ChangeLog to the patch tracker at the MinGW sourceforge site. Make sure to indicate where your changes are derived from -- only publicly available sources are allowed, such as MSDN web pages. Using the MS PSDK or other projects for the source of information is not allowed as it is not compatible with the w32api license (which is really more like an absence of any license.) Brian |
From: ilmcuts <il...@gm...> - 2008-08-02 10:39:35
|
Brian Dessent wrote: > You get them added the same way you do with any open source project, by > submitting patches: Addendum (in case anyone is following this) The following #defines/enums are also missing: * ABM_SETSTATE (SHAppBarMessage) * SND_SYSTEM (PlaySound) * SETWALLPAPER_DEFAULT (SystemParametersInfo) * REST_NOLOCALMACHINERUN * REST_NOCURRENTUSERRUN * REST_NOLOCALMACHINERUNONCE * REST_NOCURRENTUSERRUNONCE (all SHRestricted) * ... the entire RESTRICTIONS enum i guess ... there's probably more still. SHRestricted is missing too, but we GetProcAddress it anyway. I won't work on any patches myself as I already have enough on my plate with our own open source project. I primarily use Visual Studio and as such don't have the necessary tools set up anyway I suppose. I figured I'd nevertheless post this here are a bug report. -ilmcuts |