[Back to FAQ SWAG index] [Back to Main SWAG index] [Original]

    {
    Hello,
    since I expect Win95-API questions to become an FAQ in the next few
    months, I thought you may be interested in adding a Win95 API list to the
    SWAG WIN-OS2.SWG area...

    The inofficial guide to Windows 95 API functions (Version 1.5)
    (c) 1995 by Bernhard Rosenkraenzer

    Changes since last version (1.0):
    - Updated to Windows 95, Beta III (Milestone 8)
    - Rearranged function descriptions to match function numbers
    - Changed "other new functions" list to "list of all new functions"
      to give a better overview
    - corrected minor mistakes - Kernel.38 (SetTaskSignalProc) and Kernel.352
      (LStrCatN) were listed as new functions previously, but they an obsolete
      ones.

    Warning: All information in this document concerns the Windows 95 beta III,
    March 1995. Specified information may be incorrect for the final release.
    It contains functions that will most likely be undocumented, as well.

    If you know how to use one of the listed and undescribed functions, please let
    me know. My Internet address is bero@rage.fido.de, my FIDO-address is
    2:2452/307.46.
    You can obtain the latest version of this text by sending mail to that address.

    ==========================================================================
    Kernel (krnl386.exe)
    ==========================================================================

    --------------------------------------------------------------------------
    bool GetProfileSectionNames(long Buffer, word length)         (kernel.142)
    --------------------------------------------------------------------------
    Returns the section names of the WIN.INI file. Section names are the ones
    given in []-Brackets. GetProfileSectionNames separates the section names
    using ASCII-Code 0.

    Buffer: points to a buffer to take the section names
    length: maximum length of buffer

    return: 1 = Successful

    --------------------------------------------------------------------------
    bool GetPrivateProfileSectionNames(long Buffer, word length, long filename)
                                                                  (kernel.143)
    --------------------------------------------------------------------------
    Returns the section names of any .INI file. See GetProfileSectionNames for a
    further description.

    Buffer:   points to a buffer to take the section names
    length:   maximum length of buffer
    filename: name of .INI file to look for.

    --------------------------------------------------------------------------
    bool CreateDirectory(long Directory, long whatever)           (kernel.144)
    --------------------------------------------------------------------------
    Creates a new directory, may use long filenames, may use "/" instead of "\"
    for directory separation (example:
    CreateDirectory("C:/Windows/System/Test CreateDirectory","") will create the
    directory "Test CreateDirectory" in c:\Windows\System.)

    Directory: specifies the directory name
    whatever:  function unknown - must point to a string.

    return:    1 = Directory created
               0 = Error

    --------------------------------------------------------------------------
    bool RemoveDirectory(long Directory)                          (kernel.145)
    --------------------------------------------------------------------------
    Removes a directory.

    Directory: specifies the directory name

    return:    1 = successful
               0 = Error

    --------------------------------------------------------------------------
    bool DeleteFile(long FileName)                                (kernel.146)
    --------------------------------------------------------------------------
    Deletes a file.

    FileName: specifies File name

    --------------------------------------------------------------------------
    bool GetCurrentDirectory(long length, long buffer)            (kernel.411)
    --------------------------------------------------------------------------
    Gets the current directory
    length: length of buffer to take directory name
    buffer: pointer to buffer to take directory name

    --------------------------------------------------------------------------
    bool SetCurrentDirectory(long dirname)                        (kernel.412)
    --------------------------------------------------------------------------
    Sets the current directory. Supports change of current drive. (e.g. it is
    possible to change from C:\Windows to D:\Star Trek)

    dirname: specifies the name of the directory to change to

    --------------------------------------------------------------------------
    List of all new Kernel functions
    --------------------------------------------------------------------------
    Kernel.27	GetModuleName
    Kernel.142      GetProfileSectionNames
    Kernel.143      GetPrivateProfileSectionNames
    Kernel.144      CreateDirectory
    Kernel.145      RemoveDirectory
    Kernel.146      DeleteFile
    Kernel.147	SetLastError
    Kernel.148	GetLastError
    Kernel.149	GetVersionEx
    Kernel.208	K208
    Kernel.209	K209
    Kernel.210	K210
    Kernel.211	K211
    Kernel.212	K212
    Kernel.213	K213
    Kernel.214	K214
    Kernel.215	K215
    Kernel.216	RegEnumKey
    Kernel.217	RegOpenKey
    Kernel.218	RegCreateKey
    Kernel.219	RegDeleteKey
    Kernel.220	RegCloseKey
    Kernel.221	RegSetValue
    Kernel.222	RegDeleteValue
    Kernel.223	RegEnumValue
    Kernel.224	RegQueryValue
    Kernel.225	RegQueryValueEx
    Kernel.226	RegSetValueEx
    Kernel.227	RegFlushKey
    Kernel.228	K228
    Kernel.229	K229
    Kernel.230	GlobalSmartPageLock
    Kernel.231	GlobalSmartPageUnlock
    Kernel.232	RegLoadKey
    Kernel.233	RegUnloadKey
    Kernel.234	RegSaveKey
    Kernel.235	InvalidateNLSCache
    Kernel.236	GetProductName
    Kernel.237      K237
    Kernel.360	OpenFileEx
    Kernel.361	Piglet_361
    Kernel.406	WritePrivateProfileStruct
    Kernel.407	GetPrivateProfileStruct
    Kernel.411      GetCurrentDirectory
    Kernel.412      SetCurrentDirectory
    Kernel.413	FindFirstFile
    Kernel.414	FindNextFile
    Kernel.415	FindClose
    Kernel.416	WritePrivateProfileSection
    Kernel.417	WriteProfileSection
    Kernel.418	GetPrivateProfileSection
    Kernel.419	GetProfileSection
    Kernel.420	GetFileAttributes
    Kernel.421	SetFileAttributes
    Kernel.422	GetDiskFreeSpace
    Kernel.491	RegisterServiceProccess
    Kernel.513	LoadLibraryEx32W
    Kernel.514	FreeLibrary32W
    Kernel.515	GetProcAddress32W
    Kernel.516	GetVDMPointer32W
    Kernel.517	CallProc32W
    Kernel.518	_CallProcEx32W
    Kernel.627	IsBadFlatReadWritePTR

    --------------------------------------------------------------------------
    Kernel Functions no longer existant in Win95
    --------------------------------------------------------------------------
    Kernel.38       SetTaskSignalProc
    Kernel.77	Reserved1
    Kernel.78	Reserved2
    Kernel.79	Reserved3
    Kernel.80	Reserved4
    Kernel.87	Reserved5
    Kernel.118	GetTaskQueueDS
    Kernel.119	GetTaskQueueES
    Kernel.139	DoSignal
    Kernel.140	SetSigHandler
    Kernel.141	InitTask1
    Kernel.151      WinOldApCall
    Kernel.160	EmsCopy
    Kernel.316      GetFreeMemInfo
    Kernel.327	K327
    Kernel.329	K329
    Kernel.339	DiagQuery
    Kernel.340	DiagOutput
    Kernel.343      RegisterWinOldApHook
    Kernel.344      GetWinOldApHooks
    Kernel.352      LStrCatN
    Kernel.403	K403
    Kernel.404	K404

    ==========================================================================
    User (USER.EXE)
    ==========================================================================
    --------------------------------------------------------------------------
    word WindowFromDC(word DC)                                      (User.117)
    --------------------------------------------------------------------------
    Returns the window handle from the specified DC

    DC:     DC

    return: window handle for specified DC

    --------------------------------------------------------------------------
    word GetForegroundWindow()                                      (User.608)
    --------------------------------------------------------------------------
    Returns the handle of the foreground window

    return: handle of foreground window

    --------------------------------------------------------------------------
    bool SetForegroundWindow(word handle)                           (User.609)
    --------------------------------------------------------------------------
    Makes the specified window foreground window.
    handle: Specifies handle of the window to be put in foreground.

    --------------------------------------------------------------------------
    bool SetMenuDefaultItem(word Menu, word Item, word Flag)        (User.664)
    --------------------------------------------------------------------------
    Sets a menu item default, meaning the item will be shown in bold font.
    (Like the Close entry in the window system menu).

    Menu: specifies the handle of the menu
    Item: specifies the item handle
    Flag: unknown. 0 seems to be the only working value.

    --------------------------------------------------------------------------
    List of all new User functions:
    --------------------------------------------------------------------------
    User.117        WindowFromDC
    User.281	GetSysColorBrush
    User.300	UnloadInstallableDrivers
    User.364        LookupIconIDFromDirectoryEx
    User.374	DLLEntryPoint
    User.375	DrawTextEx
    User.376	SetMessageExtraInfo
    User.378	SetPropEx
    User.379	GetPropEx
    User.380	RemovePropEx
    User.381	UsrMpr_ThunkData16
    User.382	SetWindowContextHelpID
    User.383	GetWindowContextHelpID
    User.384	SetMenuContextHelpID
    User.385	GetMenuContextHelpID
    User.389	LoadImage
    User.390	CopyImage
    User.391	SignalProc32
    User.394	DrawIconEx
    User.395	GetIconInfo
    User.397	RegisterClassEx
    User.398	GetClassInfoEx
    User.399	ChildWindowFromPointEx
    User.409	InitThreadInput
    User.427	FindWindowEx
    User.428	TileWindows
    User.429	CascadeWindows
    User.441	InsertMenuItem
    User.443	GetMenuItemInfo
    User.446	SetMenuItemInfo
    User.448	DrawAnimatedRects
    User.449	DrawState
    User.450	CreateIconFromResourceEx
    User.475	SetScrollInfo
    User.476	GetScrollInfo
    User.477	GetKeyboardLayoutName
    User.478	LoadKeyboardLayout
    User.479	MenuItemFromPoint
    User.498	Bear498
    User.533	WNetInitialize
    User.534	WNetLogOn
    User.600	GetShellWindow
    User.601	DoHotkeyStuff
    User.602	SetCheckCursorTimer
    User.604	BroadcastSystemMessage
    User.605	HackTaskMonitor
    User.606	FormatMessage
    User.608        GetForegroundWindow
    User.609        SetForegroundWindow
    User.610	DestroyIcon32
    User.620	ChangeDisplaySettings
    User.621        EnumDisplaySettings
    User.640	MsgWaitForMultipleObjects
    User.650	ActivateKeyboardLayout
    User.651	GetKeyboardLayout
    User.652	GetKeyboardLayoutList
    User.654	UnloadKeyboardLayout
    User.655	PostPostedMessages
    User.656	DrawFrameControl
    User.657	DrawCaptionTemp
    User.658	DispatchInput
    User.659	DrawEdge
    User.660	DrawCaption
    User.661	SetSysColorsTemp
    User.662	DrawMenuBarTemp
    User.663	GetMenuDefaultItem
    User.664        SetMenuDefaultItem
    User.665	GetMenuItemRect
    User.666	CheckMenuRadioItem
    User.667	TrackPopupMenuEx
    User.668	SetWindowRgn
    User.669	GetWindowRgn
    User.800	ChooseFont_CallBack16
    User.801	FindReplace_CallBack16
    User.802	OpenFileName_CallBack16
    User.803	PrintDlg_CallBack16
    User.804	ChooseColor_CallBack16
    User.819        PeekMessage32
    User.820        GetMessage32
    User.821        TranslateMessage32
    User.823        CallMsgFilter32
    User.824        IsDialogMessage32
    User.825	PostMessage32
    User.826	PostThreadMessage32
    User.827	MessageBoxIndirect
    User.850	UsrThkConnectionDataLs
    User.851	MsgThkConnectionDataLs
    User.853	Ft_UsrThkThkConnectionData
    User.854	Ft_UsrF2ThkThkConnectionData
    User.855	Usr32ThkConnectionDataSl
    User.890	InstallImt
    User.891	UnInstallImt

    --------------------------------------------------------------------------
    User Functions changed in Win95
    --------------------------------------------------------------------------
    User.8  (WEP)  moved to  User.9  (WEP)

    --------------------------------------------------------------------------
    User Functions no longer existant in Win95
    --------------------------------------------------------------------------
    User.314	SignalProc
    User.336	LoadCursorIconHandler
    User.341	_FFFE_FARFRAME
    User.343	GetFilePortName
    User.356	LoadDIBCursorHandler
    User.357	LoadDIBIconHandler

    ==========================================================================
    GDI
    ==========================================================================
    --------------------------------------------------------------------------
    bool PolyBezier(word DC, long points, word numpoints)            (GDI.502)
    --------------------------------------------------------------------------
    Draws bezier curves.

    DC:        handle of DC to paint bezier curves in
    points:    pointer to an array of TPOINT structures identifying the
               coordinates
    numpoints: number of points stored in points.

    --------------------------------------------------------------------------
    bool PolyBezierTo(word DC, long points, word numpoints)          (GDI.503)
    --------------------------------------------------------------------------
    Draws bezier curves. Starting point for the first bezier curve is the
    current cursor position.

    DC:        handle of DC to paint bezier curves in
    points:    pointer to an array of TPOINT structures identifying the
               coordinates
    numpoints: number of points stored in points.

    --------------------------------------------------------------------------
    List of all new GDI functions
    --------------------------------------------------------------------------
    GDI.188 GetTextExtentEx
    GDI.266	OpenPrinterA
    GDI.267	StartDocPrinterA
    GDI.268	StartPagePrinter
    GDI.269	WritePrinter
    GDI.270	EndPagePrinter
    GDI.271	AbortPrinter
    GDI.272	EndDocPrinter
    GDI.274	ClosePrinter
    GDI.280	GetRealDriverInfo
    GDI.281	DrvSetPrinterData
    GDI.282	DrvGetPrinterData
    GDI.299	EngineGetCharWidthEx
    GDI.315	EngineRealizeFontExt
    GDI.316	EngineGetCharWidthStr
    GDI.404 GetTTGlyphIndexMap
    GDI.489	CreateDIBSection
    GDI.490	CloseEnhMetaFile
    GDI.491	CopyEnhMetaFile
    GDI.492	CreateEnhMetaFile
    GDI.493	DeleteEnhMetaFile
    GDI.495	GDIComment
    GDI.496	GetEnhMetaFile
    GDI.497	GetEnhMetaFileBits
    GDI.498	GetEnhMetaFileDescription
    GDI.499	GetEnhMetaFileHeader
    GDI.501	GetEnhMetaFilePaletteEntries
    GDI.502 PolyBezier
    GDI.503 PolyBezierTo
    GDI.504	PlayEnhMetaFileRecord
    GDI.505	SetEnhMetaFileBits
    GDI.506	SetMetaRgn
    GDI.508	ExtSelectClipRgn
    GDI.511	AbortPath
    GDI.512	BeginPath
    GDI.513	CloseFigure
    GDI.514	EndPath
    GDI.515	FillPath
    GDI.516	FlattenPath
    GDI.517	GetPath
    GDI.518	PathToRegion
    GDI.519	SelectClipPath
    GDI.520	StrokeAndFillPath
    GDI.521	StrokePath
    GDI.522	WidenPath
    GDI.523	ExtCreatePen
    GDI.524	GetArcDirection
    GDI.525	SetArcDirection
    GDI.526	GetMiterLimit
    GDI.527	SetMiterLimit
    GDI.528	GDIParametersInfo
    GDI.529	CreateHalfTonePalette
    GDI.602	SetDIBColorTable
    GDI.603	GetDIBColorTable
    GDI.604	SetSolidBrush
    GDI.605	SysDeleteObject
    GDI.606	SetMagicColors
    GDI.607	GetRegionData
    GDI.608	ExtCreateRegion
    GDI.609	GDIFreeResources
    GDI.610	GDISignalProc32
    GDI.611	GetRandomRgn
    GDI.612	GetTextCharset
    GDI.613	EnumFontFamiliesEx
    GDI.614	AddLpkToGDI
    GDI.615	GetCharacterPlacement
    GDI.616	GetFontLanguageInfo
    GDI.650	BuildInverseTableDIB
    GDI.701	GDIThkConnectionDataLs
    GDI.702	FT_GDIFThkThkConnectionData
    GDI.703	FdThkConnectionDataSl
    GDI.704	IcmThkConnectionDataSl
    GDI.801	SetIcmMode
    GDI.804	EnumProfiles
    GDI.807	CheckColorSignAmut
    GDI.808	GetColorSpace
    GDI.809	GetLogColorSpace
    GDI.810	CreateColorSpace
    GDI.811	SetColorSpace
    GDI.812	DeleteColorSpace
    GDI.813	GetICMProfile
    GDI.814	SetICMProfile
    GDI.815	GetDeviceGammaRamp
    GDI.816	SetDeviceGammaRamp
    GDI.817	ColorMatchToTarget
    GDI.820	ICMCreateTransform
    GDI.821	ICMDeleteTransform
    GDI.822	ICMTranslateRGB
    GDI.823	ICMTranslateRGBs
    GDI.824	ICMCheckColorSignAmut

    --------------------------------------------------------------------------
    GDI Functions no longer existant in Win95
    --------------------------------------------------------------------------
    GDI.213	Brute
    GDI.460 GdiTaskTermination

    ==========================================================================
    TOOLHELP (Toolhelp.dll)
    ==========================================================================
    --------------------------------------------------------------------------
    new Toolhelp functions in Win95
    --------------------------------------------------------------------------
    Toolhelp.2	__GP
    Toolhelp.3	DLLEntryPoint
    Toolhelp.84	Local32Info
    Toolhelp.85	Local32First
    Toolhelp.86	Local32Next

    ==========================================================================
    MMSYSTEM
    ==========================================================================
    --------------------------------------------------------------------------
    word MixerGetNumDevs()                                      (mmsystem.800)
    --------------------------------------------------------------------------
    returns the number of installed sound mixer devices.

    --------------------------------------------------------------------------
    new MMSYSTEM functions in Win95
    --------------------------------------------------------------------------
    Mmsystem.3	PlaySound
    Mmsystem.4	DLLEntryPoint
    Mmsystem.110	JoyGetPosEx
    Mmsystem.111	JoyConfigChanged
    Mmsystem.250	MidiStreamProperty
    Mmsystem.251	MidiStreamOpen
    Mmsystem.252	MidiStreamClose
    Mmsystem.253	MidiStreamPosition
    Mmsystem.254	MidiStreamOut
    Mmsystem.255	MidiStreamPause
    Mmsystem.256	MidiStreamRestart
    Mmsystem.257	MidiStreamStop
    Mmsystem.800    MixerGetNumDevs
    Mmsystem.801	MixerGetDevCaps
    Mmsystem.802	MixerOpen
    Mmsystem.803	MixerClose
    Mmsystem.804	MixerMessage
    Mmsystem.805	MixerGetLineInfo
    Mmsystem.806	MixerGetID
    Mmsystem.807	MixerGetLineControls
    Mmsystem.808	MixerGetControlDetails
    Mmsystem.809	MixerSetControlDetails
    Mmsystem.1120	MMThreadCreate
    Mmsystem.1121	MMThreadSignal
    Mmsystem.1122	MMThreadBlock
    Mmsystem.1123	MMThreadIsCurrent
    Mmsystem.1124	MMThreadIsValid
    Mmsystem.1125	MMThreadGetTask
    Mmsystem.1150   MMShowMMCplPropertySheet
    Mmsystem.2000	WinMMF_ThunkData16
    Mmsystem.2001	Ring3_Devloader
    Mmsystem.2002	WinMMTileBuffer
    Mmsystem.2003	WinMMUntileBuffer
    Mmsystem.2005	MCIGetThunkTable
    Mmsystem.2006	WinMMLs_ThunkData16

    --------------------------------------------------------------------------
    MMSYSTEM Functions no longer existant in Win95:
    --------------------------------------------------------------------------
    Mmsystem.34	MMDrvInstall
    Mmsystem.109	JoySetCalibration

    ==========================================================================
    SHELL.DLL
    ==========================================================================
    --------------------------------------------------------------------------
    bool PickIconDlg(long Window, long length, long buffer)        (shell.166)
    --------------------------------------------------------------------------
    Shows the Icon Selection dialog box and returns filename and index of the
    selected icon.

    Window: Parent window handle or 0
    Length: Maximum length of buffer
    Buffer: Buffer to take information on the selected icon

    --------------------------------------------------------------------------
    word DriveType(word drive)                                     (shell.262)
    --------------------------------------------------------------------------
    Returns the drive type for a specified drive
    drive: 0 = A:
           1 = B:
           ...
    return: 1 = not installed
            2 = disk drive (3.5" HD)
            3 = Hard Disk
            4 = Network ??
            5 = CD-ROM

    --------------------------------------------------------------------------
    word ShFormatDrive(word Window, word Drive, long Param)        (shell.400)
    --------------------------------------------------------------------------
    Formats, or makes bootable, the specified drive

    Window: parent window handle or 0
    Drive:  0 = A:, 1 = B:, ...
    Param:  0 = QuickFormat; 1 = Full Format; 2 = make bootable
    return: -2 = canceled by user
            0 or -3 = drive can't be formatted
            6 = successful format

    --------------------------------------------------------------------------
    List of all new Shell functions:
    --------------------------------------------------------------------------
    Shell.40        ExtractIconEx
    Shell.98        Shl3216_ThunkData16
    Shell.99        Shl1632_ThunkData16
    Shell.101       DLLEntryPoint
    Shell.157	RestartDialog
    Shell.166       PickIconDlg
    Shell.262       DriveType
    Shell.300	ShGetFileInfo
    Shell.400       ShFormatDrive
    Shell.401	ShCheckDrive
    Shell.402	_RunDLLCheckDrive

    --------------------------------------------------------------------------
    Functions no longer existant in Win95
    --------------------------------------------------------------------------
    Shell.32        WCI
    Shell.33        AboutDlgProc
    Shell.100	HereTharBetYGars
    Shell.101       FindExeDlgProc
    Shell.103	ShellHookProc

    --------------------------------------------------------------------------
    Changes from Windows 3.x to Windows 95
    --------------------------------------------------------------------------
    Shell.101 FindExeDlgProc --> Shell.101 DLLEntryPoint

    ==========================================================================
    COMMDLG
    ==========================================================================
    --------------------------------------------------------------------------
    new functions in Win95:
    --------------------------------------------------------------------------
    Commdlg.40	DlgThkConnectionDataLs

    --------------------------------------------------------------------------
    functions no longer existant in Win95
    --------------------------------------------------------------------------
    Commdlg.6	FileOpenDlgProc
    Commdlg.7	FileSaveDlgProc
    Commdlg.8	ColorDlgProc
    Commdlg.13	FindTextDlgProc
    Commdlg.14	ReplaceTextDlgProc
    Commdlg.18	FontStyleEnumProc
    Commdlg.19	FontFamilyEnumProc
    Commdlg.21	PrintDlgProc
    Commdlg.22	PrintSetupDlgProc
    Commdlg.23	EditIntegerOnly
    Commdlg.25	WantArrows
    Commdlg.29	DwLbSubClass
    Commdlg.30	DwUpArrowHack
    Commdlg.31	DwOkSubClass

    The inofficial guide to Windows 95 API, Appendix 1:

    API Changes from Beta II, Oct 1994 (M7) to Beta III, March 1995 (M8):

    ===
    GDI
    ===
    Removed:
    GDI.460 GdiTaskTermination

    Added:
    GDI.188 GetTextExtentEx
    GDI.404 GetTTGlyphIndexMap

    ====
    USER
    ====
    Removed:
    User.396 LookupIconIDFromDirectory
    User.439 CreateIconFromResource
    User.870 CreateSegmentedFrtWin
    User.871 GetFrtWin
    User.872 UpdateFrtWin
    User.873 DestroySegmentedFrtWin

    Added:
    User.621 EnumDisplaySettings
    User.819 PeekMessage32
    User.820 GetMessage32
    User.821 TranslateMessage32
    User.823 CallMsgFilter32
    User.824 IsDialogMessage

    ======
    KERNEL
    ======
    Removed:
    Kernel.34  SetTaskQueue
    Kernel.151 WinOldApCall
    Kernel.316 GetFreeMemInfo
    Kernel.343 RegisterWinOldApHook
    Kernel.344 GetWinOldApHooks

    Added:
    Kernel.237 K237

    =======
    COMMDLG
    =======
    The old Windows 3.1 function CommDlg.16 (FormatCharDlgProc) was obsolete
    in Beta II, but works again with Beta III.

    ========
    MMSYSTEM
    ========
    Added:
    Mmsystem.1150 MMShowMMCplPropertySheet

[Back to FAQ SWAG index] [Back to Main SWAG index] [Original]