Missing Settlement Functions

As a condition of the Final Judgment in United States v. Microsoft, CA No. 98-1232, Microsoft is required to disclose “the APIs and related Documentation that are used by Microsoft Middleware to interoperate with a Windows Operating System Product”.

Among the outcomes of the present survey of Windows shell functions is a list of API functions that three important software modules are known to make accessible for use by other modules, and for each function a list of other modules that are known to use the function. These lists would seem well suited to a quick test of whether Microsoft’s API disclosure is credibly complete.

Of course, completeness must be assessed in the sense intended by the judgement. The aim is to extract from the survey’s lists each function for which all the following are true:

The ideal expectation is that no function in the survey should satisfy all these conditions. Note especially that the Joint Status Report on Microsoft’s Compliance with the Final Judgments, dated 3rd July 2003, reports to the court that “to identify the relevant interfaces, Microsoft developed new software tools and drew upon the expertise of more than 50 Windows software developers and program managers.” This seems intended to convey an impression of substantial work, perhaps even of thoroughness, specifically just to enumerate APIs for disclosure. It seems reasonable to expect that the ideal will be at least close to the reality.

Even if some few functions satisfy all the conditions, Microsoft surely has something to explain, if only that slight inaccuracies are inevitable, no matter how hard one works or how much care one takes. If hundreds of functions satisfy all the tests, which they do, then although no appeal to occasional error in good faith would be credible, much might be explained as Microsoft having applied some different interpretation, so that Microsoft enumerated APIs for disclosure by testing against very different conditions. Against that, since Microsoft doesn’t present any such conditions that it tested for, nor say anything in public that might help an assessment of its methods, one might reasonably wonder whether the omissions amount to “knowing, willful or systematic violations”.

Windows

To apply the first test to the survey is to ask which of the three shell modules (COMCTL32.DLL, SHELL32.DLL and SHLWAPI.DLL) that supply the surveyed functions qualify as components of a Windows Operating System Product. I contend that the only sensible answer is that all three do.

All three are distributed with all versions of Windows 2000 and Windows XP. The edition used for the survey is Windows XP Service Pack 1a, which certainly qualifies.

Not only are these shell modules distributed in the Windows package, but Microsoft has itself listed all three as core components of Windows, though admittedly for earlier versions of Windows than specified in the judgement. See for instance the MSDN Library from January 1997 for a list of Core Components given as an appendix to the Designed for Microsoft Windows NT and Windows 95 Logo Handbook for Software Applications. Curiously, this appendix does not persist in later descriptions of the logo requirements.

On the other hand, Microsoft has also listed two of these modules, namely COMCTL32.DLL and SHLWAPI.DLL, as core components of Internet Explorer. That Internet Explorer has privileged access to core components of Windows is, to many people, a good brief summary of how all this trouble started.

Perhaps the last word is given by the Settlement Program Interfaces that Microsoft has documented for compliance with the judgement. These include functions exported from each of these three shell modules.

APIs

Applicability of the second test is trivial. All functions in the survey are formally exported by the three shell modules in question. Each is therefore locatable and callable from any other module that knows what to locate and how to call. That Microsoft does not document all such functions as Application Program Interfaces or document how to use the functions (at all, let alone safely) does not mean that the functions are not APIs.

Middleware

Thus, any function that is exported from any of the shell modules for this survey satisfies the first two tests. To apply the third test, examine the list of modules that are known to use the function. The present interest is with functions for which the list of known users includes even one module that is distributed not only with Windows but also with some other Microsoft product that qualifies as Microsoft Middleware.

If a function has no known users, it is eliminated. Most likely, the function is obsolete.

A function is also eliminated if all its known users seem to be distributed only with Windows. Specially prominent examples of such modules are COMDLG32.DLL, EXPLORER.EXE and SHELL32.DLL. Less prominent are PRINTUI.DLL, PROGMAN.EXE, SYNCUI.DLL and TASKMAN.EXE. These seven examples suffice for eliminating numerous shell functions as being in some sense internal to Windows.

An open question in my mind arises from the judgement’s definition of Microsoft Middleware as excluding any “software code described as part of, and distributed separately to update, a Microsoft Middleware Product”. Does this apply to modules that are redistributed with other products apparently only as setup tools, rather than as lasting elements of the installed product? Of particular interest among such setup tools is GRPCONV.EXE, because it uses surprisingly many undocumented shell functions. I have chosen to treat a function’s use by GRPCONV.EXE as an internal Windows matter, not as use that qualifies under the judgement.

Note that all the eliminations so far are generous to Microsoft’s compliance.

That a user is not known for some function does not mean that the function is not used. The known users obtained for the survey are those for which Microsoft distributes symbol files as customer support for Windows, and the modules listed as users of any one function are those that the symbol files show as formally importing the function. A function may be used in some way that does not generate the corresponding import symbol. Such other ways certainly are known, and some are arguably exotic: for instance, the SHLWAPI function EventTraceHandler is used by MSHTML.DLL because the former creates a named memory mapping in which to store the function’s address and the latter knows the name of the memory mapping. For the tables below, I leave such exotica alone, so that they do not count as usage even though they are arguably the most egregious examples.

What remains after the preceding eliminations is a list of functions each of which has at least one known importer that is distributed with some Microsoft product other than Windows. Moreover, it turns out that for every remaining function, at least one of the known importers is a module that is distributed with Internet Explorer (which I take to include Outlook Express), except for some few modules that support the Microsoft Network (MSN). Indeed, almost all the remaining functions are imported by either BROWSEUI.DLL or SHDOCVW.DLL, and a few more by MSHTML.DLL.

SHDOCVW

If anything, SHDOCVW is not just software code for Internet Explorer: it is the main software code for Internet Explorer. There is even a literal sense to this. Some users start Internet Explorer by running the program IEXPLORE.EXE, and some even consider that this program is the essence of the product. However, IEXPLORE has long been little more than a front end for executing SHDOCVW, and the way that this execution is arranged is that IEXPLORE calls a function named IEWinMain in SHDOCVW (exported as ordinal 101 and apparently, if unsurprisingly, not documented).

Another measure by which SHDOCVW is the essence of Internet Explorer is provided by Microsoft’s own advice on How to Determine Which Version of Internet Explorer is Installed, particularly where a “table lists the different versions of the Shdocvw.dll file and the corresponding versions of Internet Explorer”.

BROWSEUI

There may be more debate about BROWSEUI. For instance, as a rough analogue of SHDOCVW’s providing a sort of WinMain function for Internet Explorer, BROWSEUI has a function named SHParseIECommandLine (exported as ordinal 125 and apparently undocumented) that gets the job of parsing the IEXPLORE command line. However, BROWSEUI parses the command line for the ordinary Windows Explorer too, through the function SHExplorerParseCmdLine (exported as ordinal 107 and also apparently undocumented). On this matter, and many others, it behaves in part as a component of Windows and in part as a component of Internet Explorer. Is BROWSEUI one or the other, in terms of the judgement’s definitions, or is it both?

Perhaps the last word comes indirectly from Microsoft. If BROWSEUI is not a component of Internet Explorer, then presumably it is a component of Windows, so that its use of undocumented shell functions is an internal Windows matter and does not qualify for documentation under the judgement. But if this is so, then the functions that BROWSEUI exports and Internet Explorer calls (as with SHParseIECommandLine) ought to have been documented for the settlement—and none were.

Documentation

The last test is whether the function is documented. A function’s status with respect to Microsoft’s documentation has no controversy. The judgement cites the Microsoft Developer Network (MSDN) specifically and the choice of reference for the survey is the January 2004 edition, already at least a year later than Microsoft’s supposed compliance. If a function was not documented by then, yet ought to have been, then Microsoft has a compliance problem to explain and put right—and the compliance authorities create a hostage for the future if they don’t explain the process in public.

Function Lists

All up, I count 363 shell functions as passing all four tests, so that they ought to have been documented by Microsoft but have not been. A large proportion are perhaps dismissable on the grounds that they repackage otherwise well-documented Windows API functions—but even after dismissing these, I still count 196.

The tables that follow show for each function one or more modules that are known to use the function and which I regard as sufficient to qualify the function for documentation under the judgement. These modules are represented according to the following key.

B browseui.dll
H one or more Internet Explorer components whose names contain HTML or XML,
e.g., mshtml.dll, mshtmled.dll, msxml2.dll, msxml3.dll 
I one or more Internet Explorer components whose names contain IE, e.g.,
ieakeng.dll, iedkcs32.dll, msieftp.dll
M one or more MSN core files,
e.g., msmom.dll, msnmetal.dll, msnspell.dll 
N one or more Internet Explorer or Outlook Express components whose names contain INET,
e.g., inetcomm.dll, inetcpl.cpl, wininet.dll 
O one or more Outlook Express components whose names contain OE,
e.g., msoe.dll
R msrating.dll
S shdocvw.dll
U one or more Internet Explorer components whose names contain URL,
e.g., url.dll, urlmon.dll
W webcheck.dll
X iexplore.exe

Unless some argument exists that BROWSEUI.DLL and SHDOCVW.DLL (and to a lesser extent, MSHTML.DLL) are not components of Internet Explorer, which is in turn clearly cited as a Microsoft Middleware Product, one can only wonder at how Microsoft can possibly have omitted from the Settlement Program Interfaces more “shell and common controls” functions than it documented.

COMCTL32 Functions

Microsoft documented 17 COMCTL32 functions as Settlement Program Interfaces. I count another 17 functions as omitted (and for one more, both the ANSI and Unicode forms ought to qualify but Microsoft documents only the Unicode form).

These missing functions are exported from the COMCTL32.DLL that shippred with Windows XP Service Pack 1a, are each used by at least one of the following three DLLs that were all distributed with that same version of Windows and with the roughly contemporaneous Internet Explorer 6.0:

yet were not documented by Microsoft as late as the January 2004 edition of the MSDN Library on CD.

Note, however, that they have all been documented subsequently. This post-settlement documentation was not done all at once, but as a process of apparently irregular updates. I have not been willing (even if able) to track this process in detail: doing so should be the (paid) work of the compliance authorities, even if Microsoft seems nowhere to have described this post-settlement documentation as rectifying any incompleteness of the original list.

Undocumented Function Importers  
AddMRUStringW B documented in 2004-2006
CreateMRUListW B documented in 2004-2006
DPA_Clone BS documented in 2005-2006
DPA_CreateEx W documented in 2005-2006
DPA_GetPtrIndex BI documented in 2005-2006
DPA_LoadStream BS documented in 2005
DPA_Merge BS documented in 2005-2006
DPA_SaveStream BS documented in 2005
DSA_DeleteAllItems BS documented in 2006
DSA_DeleteItem BS documented in 2004-2006
DSA_GetItem BIS documented in 2004-2006
DSA_SetItem BIS documented in 2004-2006
EnumMRUListW B documented in 2004-2006
FreeMRUList B documented in 2004-2006
ImageList_SetColorTable B documented in 2004-2006
MirrorIcon BS documented in 2004-2006
Str_GetPtrW B documented in 2004-2006
Str_SetPtr IS only Unicode form documented for settlement;
ANSI form documented in 2004-2006

SHELL32 Functions

Microsoft listed among the Settlement Program Interfaces 110 “shell functions”, almost all of which actually are implemented in SHELL32. Hundreds more SHELL32 functions remain undocumented, but I accept that all but 2 seem either to be used only internally within Windows or to be not used at all. Again, for one more function, Microsoft has documented only the Unicode form, even though both ANSI and Unicode forms surely qualify.

The functions shown below as missing from the Settlement Program Interfaces are exported from the SHELL32.DLL that shipped with Windows XP Service Pack 1a, are each used by at least the following DLL that was distributed with that same version of Windows and with the roughly contemporaneous Internet Explorer 6.0:

yet were not documented by Microsoft in the January 2004 edition of the MSDN Library on CD.

Undocumented Function Importers  
DDECreatePostNotify B  
DDEHandleViewFolderNotify B  
ILCreateFromPath BS only Unicode form documented for settlement;
other forms documented in 2004-2006

SHLWAPI Functions

It is with SHLWAPI that Microsoft has, if only as I see it, seriously and perhaps culpably undercounted. Microsoft lists only one SHLWAPI function (namely SHGetViewStatePropertyBag) among the Settlement Program Interfaces. That this might be anywhere near complete is just not credible if SHLWAPI is regarded as a Windows component used by Internet Explorer.

Against this is that Microsoft perhaps deems SHLWAPI to be a component of Internet Explorer but somehow not a component of Windows. With this thinking, bizarre as it would surely seem to many, no SHLWAPI functions used by Internet Explorer would need to be documented for the settlement. Inclusion of SHGetViewStatePropertyBag might have been necessary only because it is used by some Middleware product other than Internet Explorer. Or perhaps it is just that Microsoft was in this one case more generous than the settlement requires. Until Microsoft explains its thinking, which might never happen unless asked by a court, we will never know.

Until then, if I take SHLWAPI as a component of Windows for the purposes of the settlement (even if it is also a component of Internet Explorer), then I count 344 SHLWAPI functions as omitted. Roughly half are so-called wrappers of otherwise well-known API functions, mostly to present a Unicode interface even if the underlying implementation will convert to and from ANSI. Microsoft documents a Microsoft Layer for Unicode (MSLU) that does something similar, though by a significantly different method. Whatever the advantages and disadvantages, these long-standing wrappers in SHLWAPI still find very heavy use by all sorts of modules, including many that surely qualify as components of Microsoft Middleware. Since these wrappers form a set and since many will think them a very uninteresting set, I present them separately, later.

Discounting the wrappers for now, there remain 177 functions that are exported from the SHLWAPI.DLL that shipped with Windows XP Service Pack 1a, are each used by at least one of the following DLLs that were all distributed with that same version of Windows and with the roughly contemporaneous Internet Explorer 6.0:

yet were not documented by Microsoft in the January 2004 edition of the MSDN Library on CD.

Consultation of the MSDN Library on-line in late 2004 revealed that some of the functions in the table below have been documented since this study was first imagined (and the January 2004 edition chosen as the initial point of reference). More have been documented since. This still leaves more than a hundred as missing.

Undocumented Function Importers  
AssocMakeApplicationByKeyW B  
CompareStringAltW H  
ConnectToConnectionPoint BMS documented in 2004
CreateAllAccessSecurityAttributes NS  
CreateURLFileContents SU  
EventTraceHandler B  
FDSA_DeleteItem B  
FDSA_Destroy B  
FDSA_Initialize B  
FDSA_InsertItem B  
GetPerfTime B  
GetUIVersion BNS  
GUIDFromString BS documented in 2005-2006
IConnectionPoint_InvokeWithCancel S  
IConnectionPoint_SimpleInvoke S  
IContextMenu_Invoke B  
IsCharBlankW H  
IsCharDigitW H  
IsCharXDigitW H  
IShellFolder_CompareIDs S  
IShellFolder_EnumObjects B  
IShellFolder_GetDisplayNameOf S  
IShellFolder_ParseDisplayName B  
IsOS BIMNORSWX documented in 2004
IsQSForward B  
IStream_Read BS documented in 2004
IStream_Size S documented in 2004
IStream_Write BS documented in 2006
IUnknown_CPContainerOnChanged S  
IUnknown_EnableModeless BIS  
IUnknown_Exec BHS  
IUnknown_GetClassID BS  
IUnknown_GetSite B documented in 2004
IUnknown_GetWindow BIS documented in 2004
IUnknown_HandleIRestrict B  
IUnknown_HasFocusIO B  
IUnknown_OnFocusChangeIS BS  
IUnknown_OnFocusOCS S  
IUnknown_ProfferService B  
IUnknown_QueryServiceExec BS  
IUnknown_QueryServiceForWebBrowserApp BS  
IUnknown_QueryStatus BHS  
IUnknown_Set BS documented in 2004
IUnknown_SetOwner BS  
IUnknown_SetSite BIS documented in 2004
IUnknown_ShowBrowserBar S  
IUnknown_TranslateAcceleratorIO B  
IUnknown_TranslateAcceleratorOCS S  
IUnknown_UIActivateIO BS  
MayExecForward B  
MayQSForward B  
MIME_GetExtensionW S  
MLBuildResURLW BS  
MLClearMLHInstance BNRSUW  
MLFreeLibrary BHINS documented in 2004
MLGetUILanguage BHNORSX documented in 2005-2006
MLHtmlHelpW HS documented in 2005-2006
MLWinHelp HU  
ParseURL BHISU documented in 2004
PathFileExistsAndAttributesW B  
PathFindOnPathExW B  
QISearch BIS documented in 2004
RegisterDefaultAcceptHeaders HS  
RegisterGlobalHotkeyW S  
SHAboutInfoW S  
SHAnsiToUnicode BINRSUW documented in 2004
SHAnsiToUnicodeCP IS  
SHBoolSystemParametersInfo B  
SHCancelTimerQueueTimer M documented in 2005-2006
SHCheckDiskForMediaW IS  
SHCheckMenuItem B  
SHCoCreateInstanceAC BS  
SHCreateMemStream BS documented in 2004
SHCreatePropertyBagOnMemory S  
SHCreatePropertyBagOnRegKey S  
SHCreateWorkerWindowW BIS  
SHDefWindowProc BS  
SHDeleteOrphanKeyA SU  
SHEnableMenuItem BS  
SHExpandEnvironmentStringsW BS  
SHFillRectClr BS  
SHFormatDateTime ISW documented in 2004
SHForwardContextMenuMsg B  
SHGetAppCompatFlags S  
SHGetCurColorRes BS  
SHGetIniStringW ISW  
SHGetMachineInfo HW  
SHGetMenuFromID BS  
SHGetObjectCompatFlags BS  
SHGetPerScreenResName B  
SHGetRestriction I  
SHGetShellKey BS  
SHGetValueGoodBootW BS  
SHGetWebFolderFilePathW BIU  
SHGlobalCounterCreate BRS  
SHGlobalCounterCreateNamedW S  
SHGlobalCounterGetValue BRS  
SHGlobalCounterIncrement R  
SHHtmlHelpOnDemandW BSW  
SHInterlockedCompareExchange HINS documented in 2005-2006
SHInvokeCommandOnContextMenu S  
SHInvokeDefaultCommand BS  
SHIsChildOrSelf BS documented in 2004
SHIsEmptyStream B  
SHIsExpandableFolder BS  
SHIsSameObject BS  
SHLoadFromPropertyBag BS  
SHLoadMenuPopup B  
SHLoadRegUIStringW BIS  
SHMenuIndexFromID B  
SHMessageBoxCheck BS documented in 2004
SHMessageBoxCheckExW I  
SHMirrorIcon B  
SHPackDispParamsV HS  
SHPinDllOfCLSID BS  
SHPropagateMessage BS  
SHPropertyBag_Delete B  
SHPropertyBag_ReadBOOL BS  
SHPropertyBag_ReadBSTR S  
SHPropertyBag_ReadDWORD BS  
SHPropertyBag_ReadGUID BS  
SHPropertyBag_ReadInt BS  
SHPropertyBag_ReadPOINTL B  
SHPropertyBag_ReadRECTL B  
SHPropertyBag_ReadStr B  
SHPropertyBag_WriteBOOL B  
SHPropertyBag_WriteDWORD B  
SHPropertyBag_WriteGUID BS  
SHPropertyBag_WritePOINTL B  
SHPropertyBag_WriteRECTL B  
SHQueueUserWorkItem BHNS documented in 2005-2006
SHRegGetCLSIDKeyW BN  
SHRegisterClassW BS  
SHRemoveDefaultDialogFont BNS  
SHRestrictedMessageBox BS  
SHRestrictionLookup S  
SHRunIndirectRegClientCommand BS  
SHSearchMapInt BS  
SHSendMessageBroadcast NOS documented in 2004
SHSetDefaultDialogFont BNS  
SHSetIniStringW IS  
SHSetParentHwnd BS  
SHSetTimerQueueTimer MS documented in 2005-2006
SHSetWindowBits BS  
SHSimulateDrop BS  
SHStringFromGUID BISUW  
SHStripMneumonicW B documented in 2004
SHUnicodeToAnsi BHINSW documented in 2004
SHUnicodeToAnsiCP BIS  
SHUnicodeToUnicode BISW documented in 2004
SHUnregisterClassesW BS  
SHWaitForSendMessageThread B  
SHWeakQueryInterface BS  
SHWeakReleaseInterface BS  
SHWinHelpOnDemand BNRSUW  
SKGetValueW BS  
SKSetValueW B  
StopWatch_CheckMsg B  
StopWatch_DispatchTime B  
StopWatch_MarkFrameStart B  
StopWatch_MarkJavaStop S  
StopWatch_MarkSameFrameStart S  
StopWatch_SetMsgLastLocation B  
StopWatch_TimerHandler B  
StopWatch BSX  
StopWatchFlush S documented in 2004
StopWatchMode BSX documented in 2004
StrCmpNCA HNU documented in 2004
StrCmpNIC HNSU documented in 2004
UrlCrackW HS  
UrlFixupW BMS documented in 2004
WhichPlatform BINSWX documented in 2004
ZoneCheckHost IS  
ZoneCheckUrlW S  
ZoneCheckUrlExW HS  
ZoneComputePaneSize IS  
ZoneConfigureW BS  

Unicode Wrapper Functions

The Unicode wrapper functions exported from SHLWAPI are numerous. The January 2004 edition of the MSDN Library on CD troubles to document only nine of them. Since nine is not zero, it is not as if Microsoft has always discounted these wrappers as being entirely unworthy of comment. None, however, were documented for the settlement.

The 167 wrapper functions listed below are all exported from the SHLWAPI.DLL that shipped with Windows XP Service Pack 1a, are each used by at least one of the following DLLs that were all distributed with that same Windows version and with the roughly contemporaneous Internet Explorer 6.0:

yet were not documented by Microsoft as late as the January 2004 edition of the MSDN Library on CD.

Many, but nowhere near all, have been documented since, not by the end of 2004 but in time at least for the January 2007 edition of the Windows Vista Software Development Kit (SDK). Microsoft’s selection is at best capricious. How, for instance, does anyone with the slightest appreciation of logic and consistency decide to document IsCharUpperWrapW but leave IsCharLowerWrapW alone, except if instructed to document only those functions that meet some very strict criteria however absurd may be the outcome.

Undocumented Function Importers  
AppendMenuWrapW BHOS documented in 2005-2006
CallMsgFilterWrapW B  
CallWindowProcWrapW BHIMNOS documented in 2005-2006
CharLowerBuffWrapW HS  
CharNextWrapW BHIMNSW  
CharPrevWrapW BISW  
CharToOemWrapW H  
CharUpperWrapW BHIS documented in 2005-2006
CLSIDFromProgIDWrap HIU  
CLSIDFromStringWrap HISUW  
CopyAcceleratorTableWrapW H  
CopyFileWrapW HINOSW documented in 2005-2006
CreateAcceleratorTableWrapW H  
CreateDCWrapW HIMS  
CreateDialogParamWrapW BOS  
CreateDirectoryWrapW BHIMSW  
CreateEventWrapW BHMS documented in 2005-2006
CreateFontWrapW B  
CreateFontIndirectWrapW HINS  
CreateICWrapW HI  
CreateMetaFileWrapW S  
CreateMutexWrapW BS  
CreateProcessWrapW INS  
CreateSemaphoreWrapW B  
CreateWindowExWrapW BHIMNOSW documented in 2005-2006
DdeCreateStringHandleWrapW S  
DdeInitializeWrapW S  
DdeQueryStringWrapW S  
DefWindowProcWrapW BHMOSW documented in 2005-2006
DeleteFileWrapW HIMNOSW documented in 2005-2006
DeleteMenuWrap BHIS  
DestroyMenuWrap BHNSW  
DialogBoxParamWrapW BHIMNORSUW documented in 2005-2006
DispatchMessageWrapW BHIMOSW documented in 2005-2006
DragQueryFileWrapW BHOSW documented in 2005-2006
DrawTextWrapW BHINOS documented in 2005-2006
DrawTextExWrapW N documented in 2005-2006
EnumFontFamiliesExWrapW HN  
ExpandEnvironmentStringsWrapW HINO  
ExtractIconWrapW HSW  
ExtractIconExWrapW BHI  
ExtTextOutWrapW BNOS documented in 2005-2006
FindFirstFileWrapW BHIMOSU  
FindNextFileWrapW IMOS  
FindWindowWrapW BHSW  
FindWindowExWrapW BNS  
FormatMessageWrapW BHNSW documented in 2005-2006
GetCharacterPlacementWrapW H  
GetCharWidth32WrapW H  
GetClassInfoWrapW HMNO documented in 2005-2006
GetClassInfoExWrapW BHMS  
GetClassNameWrapW BHNS  
GetClipboardFormatNameWrapW S  
GetCurrentDirectoryWrapW BNS  
GetDlgItemTextWrapW BIMNOSW documented in 2005-2006
GetFileAttributesWrapW BHIMNOSUW documented in 2005-2006
GetFileVersionInfoWrapW HS  
GetFileVersionInfoSizeWrapW HS  
GetFullPathNameWrapW HS  
GetLongPathNameWrap SU  
GetMenuItemInfoWrapW BIOSW documented in 2005-2006
GetMenuStringWrapW BH  
GetMessageWrapW BHIMOS  
GetModuleFileNameWrapW BHIMNRSUWX documented in 2005-2006
GetModuleHandleWrapW BHIMNRSUW documented in 2005-2006
GetObjectWrapW BHINS documented in 2005-2006
GetOpenFileNameWrapW HIMNOS documented in 2005-2006
GetPrivateProfileIntWrapW IMS  
GetPrivateProfileStringWrapW BIMSW  
GetPrivateProfileStructWrapW S  
GetPropWrapW BHNSW  
GetSaveFileNameWrapW HMNS documented in 2005-2006
GetShortPathNameWrapW HMW  
GetStringTypeExWrapW BN  
GetSystemDirectoryWrapW HINOSW documented in 2005-2006
GetTempFileNameWrapW HIS  
GetTempPathWrapW HIS  
GetTextExtentPoint32WrapW BINS  
GetTextFaceWrapW H  
GetTextMetricsWrapW BHINS  
GetUserNameWrapW IS  
GetWindowLongWrapW BHIMNSW documented in 2005-2006
GetWindowsDirectoryWrapW BHINRSUW documented in 2005-2006
GetWindowTextWrapW BHINOSW documented in 2005-2006
GetWindowTextLengthWrapW BINOS documented in 2005-2006
GlobalAddAtomWrapW H  
GlobalFindAtomWrapW H  
InsertMenuWrapW BHOS  
InsertMenuItemWrapW BOS documented in 2005-2006
IsBadStringPtrWrapW BNS  
IsCharAlphaWrapW H documented in 2005-2006
IsCharLowerWrapW H  
IsCharUpperWrapW H documented in 2005-2006
IsDialogMessageWrapW BMOS  
LoadAcceleratorsWrapW BHOS  
LoadBitmapWrapW BHS  
LoadCursorWrapW BHIMNSW  
LoadIconWrapW BHNSW  
LoadImageWrapW BHISW  
LoadLibraryWrapW BHIMNRSUW documented in 2005-2006
LoadLibraryExWrapW BHIMS  
LoadMenuWrapW BHNSW  
LoadStringWrapW BHIMNOSUW documented in 2005-2006
MessageBoxWrapW BHIMNSW documented in 2005-2006
MessageBoxIndirectWrapW BISW  
MoveFileWrapW IMS documented in 2005-2006
OpenEventWrapW B  
PageSetupDlgWrapW S  
PeekMessageWrapW BHIMNOSW documented in 2005-2006
PlaySoundWrapW BS  
PostMessageWrapW BHINMSW documented in 2005-2006
PostThreadMessageWrapW BHM  
PrintDlgWrapW HS  
RegCreateKeyWrapW BS  
RegCreateKeyExWrapW BHIMNSW documented in 2005-2006
RegDeleteKeyWrapW HIMNS  
RegDeleteValueWrapW BHIMNSW  
RegEnumKeyWrapW HINSW  
RegEnumKeyExWrapW BHIMNSW  
RegEnumValueWrapW BIMNSW  
RegisterClassWrapW BHMNOSW documented in 2005-2006
RegisterClassExWrapW BHMS  
RegisterClipboardFormatWrapW BHSW  
RegisterWindowMessageWrapW BHS  
RegOpenKeyWrapW BHSW  
RegOpenKeyExWrapW BHIMNSUW documented in 2005-2006
RegQueryInfoKeyWrapW HIMSW  
RegQueryValueWrapW HMNSW documented in 2005-2006
RegQueryValueExWrapW BHIMNOSUW documented in 2005-2006
RegSetValueWrapW NS  
RegSetValueExWrapW BHIMNOSW documented in 2005-2006
RemoveDirectoryWrapW ISW  
RemovePropWrapW BHNSW  
SearchPathWrapW H  
SendDlgItemMessageWrapW HINSW  
SendMessageWrapW BHIMNOSW documented in 2005-2006
SendMessageTimeoutWrapW BIS  
SetCurrentDirectoryWrapW NS  
SetDlgItemTextWrapW BHIMNOSUW documented in 2005-2006
SetFileAttributesWrapW INSW  
SetMenuItemInfoWrapW BSW  
SetPropWrapW BHNSW  
SetWindowLongWrapW BHIMNSW documented in 2005-2006
SetWindowsHookExWrapW BH  
SetWindowTextWrapW BHIMNOSU documented in 2005-2006
SHBrowseForFolderWrapW BINS  
SHChangeNotifyWrap BINSW  
ShellExecuteExWrapW BHIMNOSUW documented in 2005-2006
Shell_GetCachedImageIndexWrapW H  
SHFileOperationWrapW S  
SHFlushSFCacheWrap N  
SHGetFileInfoWrapW BHNOSW documented in 2005-2006
SHGetNewLinkInfoWrapW S  
SHGetPathFromIDListWrapW BIMNS documented in 2005-2006
StartDocWrapW I  
SystemParametersInfoWrapW BHNW  
TrackPopupMenuExWrap B  
TrackPopupMenuWrap BHNS  
TranslateAcceleratorWrapW BNOS documented in 2005-2006
UnregisterClassWrapW HO documented in 2005-2006
VerQueryValueWrapW HS  
VkKeyScanWrapW H  
WinHelpWrapW HS  
WNetGetLastErrorWrapW B  
WritePrivateProfileStringWrapW IMNSW  
WritePrivateProfileStructWrapW S  
wvsprintfWrapW H