mirror of
https://github.com/reactos/reactos.git
synced 2025-01-01 03:54:02 +00:00
- implement enumerating DirectPlay service providers
- update resources svn path=/trunk/; revision=33140
This commit is contained in:
parent
37f8eef287
commit
baf72dcc52
8 changed files with 381 additions and 3 deletions
|
@ -14,6 +14,8 @@
|
|||
<library>version</library>
|
||||
<library>dinput8</library>
|
||||
<library>dxguid</library>
|
||||
<library>dsound</library>
|
||||
<library>version</library>
|
||||
<file>system.c</file>
|
||||
<file>display.c</file>
|
||||
<file>sound.c</file>
|
||||
|
|
|
@ -81,6 +81,8 @@ IDD_NETWORK_DIALOG DIALOGEX DISCARDABLE 0, 0, 362, 190
|
|||
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "Registered DirectPlay Service Provider", -1, 10, 10, 352, 80
|
||||
CONTROL "", IDC_LIST_PROVIDER, "SysListView32", LVS_REPORT | WS_CHILD | WS_BORDER | WS_TABSTOP, 20, 20, 332, 60
|
||||
END
|
||||
|
||||
IDD_HELP_DIALOG DIALOGEX DISCARDABLE 0, 0, 362, 190
|
||||
|
@ -115,4 +117,18 @@ BEGIN
|
|||
IDS_DEVICE_FORCEFEEDBACK "Force Feedback-Driver"
|
||||
IDS_NOT_APPLICABLE "Not applicable"
|
||||
IDS_OPTION_YES "Yes"
|
||||
IDS_DIRECTPLAY_COL_NAME1 "Name"
|
||||
IDS_DIRECTPLAY_COL_NAME2 "Registry"
|
||||
IDS_DIRECTPLAY_COL_NAME3 "File"
|
||||
IDS_DIRECTPLAY_COL_NAME4 "Version"
|
||||
IDS_DIRECTPLAY8_MODEMSP "DirectPlay8-Modem Service Provider"
|
||||
IDS_DIRECTPLAY8_SERIALSP "DirectPlay8 Serial Service Provider"
|
||||
IDS_DIRECTPLAY8_IPXSP "DirectPlay8 IPX Service Provider"
|
||||
IDS_DIRECTPLAY8_TCPSP "DirectPlay8-TCP/IP Service Provider"
|
||||
IDS_DIRECTPLAY_TCPCONN "Internet TCP/IP Connection For DirectPlay"
|
||||
IDS_DIRECTPLAY_IPXCONN "IPX Connection For DirectPlay"
|
||||
IDS_DIRECTPLAY_MODEMCONN "Modem Connection For DirectPlay"
|
||||
IDS_DIRECTPLAY_SERIALCONN "Serial Connection For DirectPlay"
|
||||
IDS_REG_SUCCESS "OK"
|
||||
IDS_REG_FAIL "Error"
|
||||
END
|
||||
|
|
|
@ -81,6 +81,8 @@ IDD_NETWORK_DIALOG DIALOGEX DISCARDABLE 0, 0, 362, 190
|
|||
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "Registered DirectPlay Service Provider", -1, 10, 10, 352, 80
|
||||
CONTROL "", IDC_LIST_PROVIDER, "SysListView32", LVS_REPORT | WS_CHILD | WS_BORDER | WS_TABSTOP, 20, 20, 332, 60
|
||||
END
|
||||
|
||||
IDD_HELP_DIALOG DIALOGEX DISCARDABLE 0, 0, 362, 190
|
||||
|
@ -115,4 +117,18 @@ BEGIN
|
|||
IDS_DEVICE_FORCEFEEDBACK "Force Feedback-Driver"
|
||||
IDS_NOT_APPLICABLE "Not applicable"
|
||||
IDS_OPTION_YES "Yes"
|
||||
IDS_DIRECTPLAY_COL_NAME1 "Name"
|
||||
IDS_DIRECTPLAY_COL_NAME2 "Registry"
|
||||
IDS_DIRECTPLAY_COL_NAME3 "File"
|
||||
IDS_DIRECTPLAY_COL_NAME4 "Version"
|
||||
IDS_DIRECTPLAY8_MODEMSP "DirectPlay8-Modem Service Provider"
|
||||
IDS_DIRECTPLAY8_SERIALSP "DirectPlay8 Serial Service Provider"
|
||||
IDS_DIRECTPLAY8_IPXSP "DirectPlay8 IPX Service Provider"
|
||||
IDS_DIRECTPLAY8_TCPSP "DirectPlay8-TCP/IP Service Provider"
|
||||
IDS_DIRECTPLAY_TCPCONN "Internet TCP/IP Connection For DirectPlay"
|
||||
IDS_DIRECTPLAY_IPXCONN "IPX Connection For DirectPlay"
|
||||
IDS_DIRECTPLAY_MODEMCONN "Modem Connection For DirectPlay"
|
||||
IDS_DIRECTPLAY_SERIALCONN "Serial Connection For DirectPlay"
|
||||
IDS_REG_SUCCESS "OK"
|
||||
IDS_REG_FAIL "Error"
|
||||
END
|
||||
|
|
|
@ -94,6 +94,8 @@ IDD_HELP_DIALOG DIALOGEX DISCARDABLE 0, 0, 362, 190
|
|||
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "Registered DirectPlay Service Provider", -1, 10, 10, 352, 80
|
||||
CONTROL "", IDC_LIST_PROVIDER, "SysListView32", LVS_REPORT | WS_CHILD | WS_BORDER | WS_TABSTOP, 20, 20, 332, 60
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
@ -122,5 +124,18 @@ BEGIN
|
|||
IDS_DEVICE_FORCEFEEDBACK "Force Feedback-Driver"
|
||||
IDS_NOT_APPLICABLE "Not applicable"
|
||||
IDS_OPTION_YES "Yes"
|
||||
|
||||
IDS_DIRECTPLAY_COL_NAME1 "Name"
|
||||
IDS_DIRECTPLAY_COL_NAME2 "Registry"
|
||||
IDS_DIRECTPLAY_COL_NAME3 "File"
|
||||
IDS_DIRECTPLAY_COL_NAME4 "Version"
|
||||
IDS_DIRECTPLAY8_MODEMSP "DirectPlay8-Modem Service Provider"
|
||||
IDS_DIRECTPLAY8_SERIALSP "DirectPlay8 Serial Service Provider"
|
||||
IDS_DIRECTPLAY8_IPXSP "DirectPlay8 IPX Service Provider"
|
||||
IDS_DIRECTPLAY8_TCPSP "DirectPlay8-TCP/IP Service Provider"
|
||||
IDS_DIRECTPLAY_TCPCONN "Internet TCP/IP Connection For DirectPlay"
|
||||
IDS_DIRECTPLAY_IPXCONN "IPX Connection For DirectPlay"
|
||||
IDS_DIRECTPLAY_MODEMCONN "Modem Connection For DirectPlay"
|
||||
IDS_DIRECTPLAY_SERIALCONN "Serial Connection For DirectPlay"
|
||||
IDS_REG_SUCCESS "OK"
|
||||
IDS_REG_FAIL "Error"
|
||||
END
|
||||
|
|
|
@ -87,6 +87,8 @@ IDD_HELP_DIALOG DIALOGEX DISCARDABLE 0, 0, 362, 190
|
|||
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "Registered DirectPlay Service Provider", -1, 10, 10, 352, 80
|
||||
CONTROL "", IDC_LIST_PROVIDER, "SysListView32", LVS_REPORT | WS_CHILD | WS_BORDER | WS_TABSTOP, 20, 20, 332, 60
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
@ -115,5 +117,18 @@ BEGIN
|
|||
IDS_DEVICE_FORCEFEEDBACK "Force Feedback-Driver"
|
||||
IDS_NOT_APPLICABLE "Í/Ä"
|
||||
IDS_OPTION_YES "Äà"
|
||||
|
||||
IDS_DIRECTPLAY_COL_NAME1 "Name"
|
||||
IDS_DIRECTPLAY_COL_NAME2 "Registry"
|
||||
IDS_DIRECTPLAY_COL_NAME3 "File"
|
||||
IDS_DIRECTPLAY_COL_NAME4 "Version"
|
||||
IDS_DIRECTPLAY8_MODEMSP "DirectPlay8-Modem Service Provider"
|
||||
IDS_DIRECTPLAY8_SERIALSP "DirectPlay8 Serial Service Provider"
|
||||
IDS_DIRECTPLAY8_IPXSP "DirectPlay8 IPX Service Provider"
|
||||
IDS_DIRECTPLAY8_TCPSP "DirectPlay8-TCP/IP Service Provider"
|
||||
IDS_DIRECTPLAY_TCPCONN "Internet TCP/IP Connection For DirectPlay"
|
||||
IDS_DIRECTPLAY_IPXCONN "IPX Connection For DirectPlay"
|
||||
IDS_DIRECTPLAY_MODEMCONN "Modem Connection For DirectPlay"
|
||||
IDS_DIRECTPLAY_SERIALCONN "Serial Connection For DirectPlay"
|
||||
IDS_REG_SUCCESS "OK"
|
||||
IDS_REG_FAIL "Error"
|
||||
END
|
||||
|
|
|
@ -9,6 +9,298 @@
|
|||
|
||||
#include "precomp.h"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
WCHAR Guid[40];
|
||||
UINT ResourceID;
|
||||
}DIRECTPLAY_GUID;
|
||||
|
||||
typedef struct _LANGANDCODEPAGE_
|
||||
{
|
||||
WORD lang;
|
||||
WORD code;
|
||||
} LANGANDCODEPAGE, *LPLANGANDCODEPAGE;
|
||||
|
||||
static DIRECTPLAY_GUID DirectPlay8SP[] =
|
||||
{
|
||||
{
|
||||
L"{6D4A3650-628D-11D2-AE0F-006097B01411}",
|
||||
IDS_DIRECTPLAY8_MODEMSP
|
||||
},
|
||||
{
|
||||
L"{743B5D60-628D-11D2-AE0F-006097B01411}",
|
||||
IDS_DIRECTPLAY8_SERIALSP
|
||||
},
|
||||
{
|
||||
L"{53934290-628D-11D2-AE0F-006097B01411}",
|
||||
IDS_DIRECTPLAY8_IPXSP
|
||||
},
|
||||
{
|
||||
L"{EBFE7BA0-628D-11D2-AE0F-006097B01411}",
|
||||
IDS_DIRECTPLAY8_TCPSP
|
||||
}
|
||||
};
|
||||
|
||||
static DIRECTPLAY_GUID DirectPlaySP[] =
|
||||
{
|
||||
{
|
||||
L"{36E95EE0-8577-11cf-960C-0080C7534E82}",
|
||||
IDS_DIRECTPLAY_TCPCONN
|
||||
},
|
||||
{
|
||||
L"685BC400-9D2C-11cf-A9CD-00AA006886E3",
|
||||
IDS_DIRECTPLAY_IPXCONN
|
||||
},
|
||||
{
|
||||
L"{44EAA760-CB68-11cf-9C4E-00A0C905425E}",
|
||||
IDS_DIRECTPLAY_MODEMCONN
|
||||
},
|
||||
{
|
||||
L"{0F1D6860-88D9-11cf-9C4E-00A0C905425E}",
|
||||
IDS_DIRECTPLAY_SERIALCONN
|
||||
}
|
||||
};
|
||||
|
||||
static
|
||||
VOID
|
||||
InitListViewColumns(HWND hDlgCtrl)
|
||||
{
|
||||
WCHAR szText[256];
|
||||
LVCOLUMNW lvcolumn;
|
||||
INT Index;
|
||||
|
||||
ZeroMemory(&lvcolumn, sizeof(LVCOLUMNW));
|
||||
lvcolumn.pszText = szText;
|
||||
lvcolumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH;
|
||||
lvcolumn.fmt = LVCFMT_LEFT;
|
||||
lvcolumn.cx = 200;
|
||||
|
||||
for(Index = 0; Index < 4; Index++)
|
||||
{
|
||||
szText[0] = L'\0';
|
||||
LoadStringW(hInst, IDS_DIRECTPLAY_COL_NAME1 + Index, szText, sizeof(szText) / sizeof(WCHAR));
|
||||
szText[(sizeof(szText) / sizeof(WCHAR))-1] = L'\0';
|
||||
if (Index)
|
||||
lvcolumn.cx = 98;
|
||||
if (SendMessageW(hDlgCtrl, LVM_INSERTCOLUMNW, Index, (LPARAM)&lvcolumn) == -1)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
UINT
|
||||
FindProviderIndex(LPCWSTR szGuid, DIRECTPLAY_GUID * PreDefProviders)
|
||||
{
|
||||
UINT Index;
|
||||
for(Index = 0; Index < 4; Index++)
|
||||
{
|
||||
if (!wcsncmp(PreDefProviders[Index].Guid, szGuid, 40))
|
||||
return Index;
|
||||
}
|
||||
return UINT_MAX;
|
||||
}
|
||||
static
|
||||
BOOL
|
||||
GetFileVersion(WCHAR * szAppName, WCHAR * szVer)
|
||||
{
|
||||
UINT VerSize;
|
||||
DWORD DummyHandle;
|
||||
LPVOID pBuf;
|
||||
WORD lang = 0;
|
||||
WORD code = 0;
|
||||
LPLANGANDCODEPAGE lplangcode;
|
||||
WCHAR szBuffer[100];
|
||||
WCHAR * pResult;
|
||||
BOOL bResult = FALSE;
|
||||
|
||||
static const WCHAR wFormat[] = L"\\StringFileInfo\\%04x%04x\\FileVersion";
|
||||
static const WCHAR wTranslation[] = L"VarFileInfo\\Translation";
|
||||
|
||||
/* query version info size */
|
||||
VerSize = GetFileVersionInfoSizeW(szAppName, &DummyHandle);
|
||||
if (!VerSize)
|
||||
return FALSE;
|
||||
|
||||
|
||||
/* allocate buffer */
|
||||
pBuf = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, VerSize);
|
||||
if (!pBuf)
|
||||
return FALSE;
|
||||
|
||||
|
||||
/* query version info */
|
||||
if(!GetFileVersionInfoW(szAppName, 0, VerSize, pBuf))
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, pBuf);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* query lang code */
|
||||
if(VerQueryValueW(pBuf, wTranslation, (LPVOID *)&lplangcode, &VerSize))
|
||||
{
|
||||
/* FIXME find language from current locale / if not available,
|
||||
* default to english
|
||||
* for now default to first available language
|
||||
*/
|
||||
lang = lplangcode->lang;
|
||||
code = lplangcode->code;
|
||||
}
|
||||
/* set up format */
|
||||
swprintf(szBuffer, wFormat, lang, code);
|
||||
/* query manufacturer */
|
||||
pResult = NULL;
|
||||
bResult = VerQueryValueW(pBuf, szBuffer, (LPVOID *)&pResult, &VerSize);
|
||||
|
||||
if (VerSize && bResult && pResult)
|
||||
{
|
||||
wcscpy(szVer, pResult);
|
||||
bResult = TRUE;
|
||||
}
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, pBuf);
|
||||
return bResult;
|
||||
}
|
||||
|
||||
static
|
||||
BOOL
|
||||
EnumerateServiceProviders(HKEY hKey, HWND hDlgCtrl, DIRECTPLAY_GUID * PreDefProviders)
|
||||
{
|
||||
DWORD dwIndex = 0;
|
||||
LONG result;
|
||||
WCHAR szName[50];
|
||||
WCHAR szGUID[40];
|
||||
WCHAR szTemp[63];
|
||||
WCHAR szResult[MAX_PATH+20] = {0};
|
||||
DWORD RegProviders = 0;
|
||||
DWORD ProviderIndex;
|
||||
DWORD dwName;
|
||||
LVITEMW Item;
|
||||
INT ItemCount;
|
||||
LRESULT lResult;
|
||||
|
||||
|
||||
ItemCount = ListView_GetItemCount(hDlgCtrl);
|
||||
ZeroMemory(&Item, sizeof(LVITEMW));
|
||||
Item.mask = LVIF_TEXT;
|
||||
Item.pszText = szResult;
|
||||
Item.iItem = ItemCount;
|
||||
/* insert all predefined items first */
|
||||
for(dwIndex = 0; dwIndex < 4; dwIndex++)
|
||||
{
|
||||
Item.iItem = ItemCount + dwIndex;
|
||||
Item.iSubItem = 0;
|
||||
szResult[0] = L'\0';
|
||||
LoadStringW(hInst, PreDefProviders[dwIndex].ResourceID, szResult, sizeof(szResult)/sizeof(WCHAR));
|
||||
szResult[(sizeof(szResult)/sizeof(WCHAR))-1] = L'\0';
|
||||
lResult = SendMessageW(hDlgCtrl, LVM_INSERTITEM, 0, (LPARAM)&Item);
|
||||
szResult[0] = L'\0';
|
||||
LoadStringW(hInst, IDS_REG_FAIL, szResult, sizeof(szResult)/sizeof(WCHAR));
|
||||
szResult[(sizeof(szResult)/sizeof(WCHAR))-1] = L'\0';
|
||||
Item.iItem = lResult;
|
||||
Item.iSubItem = 1;
|
||||
lResult = SendMessageW(hDlgCtrl, LVM_SETITEM, 0, (LPARAM)&Item);
|
||||
}
|
||||
|
||||
dwIndex = 0;
|
||||
do
|
||||
{
|
||||
dwName = sizeof(szName) / sizeof(WCHAR);
|
||||
result = RegEnumKeyEx(hKey, dwIndex, szName, &dwName, NULL, NULL, NULL, NULL);
|
||||
if (result == ERROR_SUCCESS)
|
||||
{
|
||||
szName[(sizeof(szName)/sizeof(WCHAR))-1] = L'\0';
|
||||
|
||||
ProviderIndex = UINT_MAX;
|
||||
if (GetRegValue(hKey, szName, L"GUID", REG_SZ, szGUID, sizeof(szGUID)))
|
||||
ProviderIndex = FindProviderIndex(szGUID, PreDefProviders);
|
||||
else
|
||||
ProviderIndex = UINT_MAX;
|
||||
|
||||
szResult[0] = L'\0';
|
||||
/* check if the 'Path' key is available */
|
||||
if (!GetRegValue(hKey, szName, L"Path", REG_SZ, szResult, sizeof(szResult)))
|
||||
{
|
||||
/* retrieve the path by lookup the CLSID */
|
||||
wcscpy(szTemp, L"CLSID\\");
|
||||
wcscpy(&szTemp[6], szGUID);
|
||||
wcscpy(&szTemp[44], L"\\InProcServer32");
|
||||
if (!GetRegValue(HKEY_CLASSES_ROOT, szTemp, NULL, REG_SZ, szResult, sizeof(szResult)))
|
||||
szResult[0] = L'\0';
|
||||
}
|
||||
if (szResult[0])
|
||||
{
|
||||
/* insert path name */
|
||||
Item.iSubItem = 2;
|
||||
Item.iItem = ProviderIndex + ItemCount;
|
||||
SendMessageW(hDlgCtrl, LVM_SETITEM, 0, (LPARAM)&Item);
|
||||
/* retrieve file version */
|
||||
if (!GetFileVersion(szResult, szTemp))
|
||||
{
|
||||
szTemp[0] = L'\0';
|
||||
LoadStringW(hInst, IDS_VERSION_UNKNOWN, szTemp, sizeof(szTemp)/sizeof(WCHAR));
|
||||
szTemp[(sizeof(szTemp)/sizeof(WCHAR))-1] = L'\0';
|
||||
}
|
||||
Item.iSubItem = 3;
|
||||
Item.pszText = szTemp;
|
||||
SendMessageW(hDlgCtrl, LVM_SETITEM, 0, (LPARAM)&Item);
|
||||
Item.pszText = szResult;
|
||||
}
|
||||
|
||||
if (ProviderIndex != UINT_MAX)
|
||||
{
|
||||
RegProviders |= (1 << ProviderIndex);
|
||||
szResult[0] = L'\0';
|
||||
LoadStringW(hInst, IDS_REG_SUCCESS, szResult, sizeof(szResult));
|
||||
Item.iSubItem = 1;
|
||||
|
||||
Item.iItem = ProviderIndex + ItemCount;
|
||||
szResult[(sizeof(szResult)/sizeof(WCHAR))-1] = L'\0';
|
||||
SendMessageW(hDlgCtrl, LVM_SETITEM, 0, (LPARAM)&Item);
|
||||
}
|
||||
}
|
||||
dwIndex++;
|
||||
}while(result != ERROR_NO_MORE_ITEMS);
|
||||
|
||||
/* check if all providers have been registered */
|
||||
// if (RegProviders == 15)
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static
|
||||
void
|
||||
InitializeDirectPlayDialog(HWND hwndDlg)
|
||||
{
|
||||
HKEY hKey;
|
||||
LONG result;
|
||||
HWND hDlgCtrl;
|
||||
|
||||
/* open DirectPlay8 key */
|
||||
result = RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\DirectPlay8\\Service Providers", 0, KEY_READ, &hKey);
|
||||
if (result != ERROR_SUCCESS)
|
||||
return;
|
||||
|
||||
hDlgCtrl = GetDlgItem(hwndDlg, IDC_LIST_PROVIDER);
|
||||
/* initialize list ctrl */
|
||||
InitListViewColumns(hDlgCtrl);
|
||||
|
||||
/* enumerate providers */
|
||||
result = EnumerateServiceProviders(hKey, hDlgCtrl, DirectPlay8SP);
|
||||
RegCloseKey(hKey);
|
||||
if (!result)
|
||||
return;
|
||||
|
||||
/* open DirectPlay key */
|
||||
result = RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\DirectPlay\\Service Providers", 0, KEY_READ, &hKey);
|
||||
if (result != ERROR_SUCCESS)
|
||||
return;
|
||||
|
||||
/* enumerate providers */
|
||||
result = EnumerateServiceProviders(hKey, hDlgCtrl, DirectPlaySP);
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
|
||||
INT_PTR CALLBACK
|
||||
NetworkPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
|
@ -18,6 +310,7 @@ NetworkPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
case WM_INITDIALOG:
|
||||
{
|
||||
SetWindowPos(hDlg, NULL, 10, 32, 0, 0, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
|
||||
InitializeDirectPlayDialog(hDlg);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,14 +2,16 @@
|
|||
#define PRECOMP_H__
|
||||
|
||||
#define DIRECTINPUT_VERSION 0x0800
|
||||
|
||||
#define DIRECTSOUND_VERSION 0x0800
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
#include <limits.h>
|
||||
#include <setupapi.h>
|
||||
#include <devguid.h>
|
||||
#include <commctrl.h>
|
||||
|
||||
#include <dinput.h>
|
||||
#include <dsound.h>
|
||||
#include "resource.h"
|
||||
|
||||
typedef struct
|
||||
|
|
|
@ -40,6 +40,11 @@
|
|||
#define IDC_TREE_PORT 6001
|
||||
#define IDC_RICH_INFO 6002
|
||||
|
||||
/* DirectPlay dialog constants */
|
||||
#define IDC_LIST_PROVIDER 7000
|
||||
|
||||
|
||||
|
||||
/* string resource constants */
|
||||
#define IDS_MAIN_DIALOG 10000
|
||||
#define IDS_SYSTEM_DIALOG 10001
|
||||
|
@ -65,6 +70,20 @@
|
|||
#define IDS_DEVICE_FORCEFEEDBACK 10021
|
||||
#define IDS_NOT_APPLICABLE 10100
|
||||
#define IDS_OPTION_YES 10101
|
||||
#define IDS_DIRECTPLAY_COL_NAME1 10102
|
||||
#define IDS_DIRECTPLAY_COL_NAME2 10103
|
||||
#define IDS_DIRECTPLAY_COL_NAME3 10104
|
||||
#define IDS_DIRECTPLAY_COL_NAME4 10105
|
||||
#define IDS_DIRECTPLAY8_MODEMSP 10106
|
||||
#define IDS_DIRECTPLAY8_SERIALSP 10107
|
||||
#define IDS_DIRECTPLAY8_IPXSP 10108
|
||||
#define IDS_DIRECTPLAY8_TCPSP 10109
|
||||
#define IDS_DIRECTPLAY_TCPCONN 10110
|
||||
#define IDS_DIRECTPLAY_IPXCONN 10111
|
||||
#define IDS_DIRECTPLAY_MODEMCONN 10112
|
||||
#define IDS_DIRECTPLAY_SERIALCONN 10113
|
||||
#define IDS_REG_FAIL 10114
|
||||
#define IDS_REG_SUCCESS 10115
|
||||
|
||||
/* icon resource constants */
|
||||
#define IDI_APPICON 20000
|
||||
|
|
Loading…
Reference in a new issue