- use unicode apis exclusively when required.
- fix rbuild file
svn path=/trunk/; revision=29117
extern SERVICE_STATUS_HANDLE service_status_handle;
-/* main.c */
-
-VOID CALLBACK
-ServiceMain(DWORD argc, char** argv);
-
-DWORD WINAPI
-ServiceControlHandler(
- DWORD dwControl,
- DWORD dwEventType,
- LPVOID lpEventData,
- LPVOID lpContext);
-
-
/* List management (pnp_list_manager.c) */
VOID*
-<module name="audiosrv" type="win32cui" installbase="system32"
-installname="audiosrv.exe" allowwarnings="true">
+<?xml version="1.0"?>
+<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
+<module name="audiosrv" type="win32cui" installbase="system32" installname="audiosrv.exe" unicode="yes" allowwarnings="true">
<include base="audiosrv">.</include>
- <define name="UNICODE" />
<define name="__USE_W32API" />
<define name="__REACTOS__" />
<define name="_WIN32_WINNT">0x0501</define>
<library>kernel32</library>
<library>advapi32</library>
<library>user32</library>
+ <library>ntdll</library>
<library>setupapi</library>
<file>main.c</file>
<file>pnp_list_manager.c</file>
#include <audiosrv/audiosrv.h>
#include "audiosrv.h"
-
-/* Service table */
-
-SERVICE_TABLE_ENTRY service_table[2] =
-{
- { L"AudioSrv", (LPSERVICE_MAIN_FUNCTION) ServiceMain },
- { NULL, NULL }
-};
-
SERVICE_STATUS_HANDLE service_status_handle;
SERVICE_STATUS service_status;
}
VOID CALLBACK
-ServiceMain(DWORD argc, char** argv)
+ServiceMain(DWORD argc, LPWSTR argv)
{
logmsg("* Service starting\n");
logmsg("Registering service control handler...\n");
- service_status_handle = RegisterServiceCtrlHandlerEx(SERVICE_NAME,
- ServiceControlHandler,
- NULL);
+ service_status_handle = RegisterServiceCtrlHandlerExW(SERVICE_NAME,
+ ServiceControlHandler,
+ NULL);
logmsg("Service status handle %d\n", service_status_handle);
if ( ! service_status_handle )
SetServiceStatus(service_status_handle, &service_status);
}
-int main()
+int wmain()
{
+ SERVICE_TABLE_ENTRYW service_table[] =
+ {
+ { SERVICE_NAME, (LPSERVICE_MAIN_FUNCTIONW) ServiceMain },
+ { NULL, NULL }
+ };
+
logmsg("Audio Service main()\n");
- StartServiceCtrlDispatcher(service_table);
+ if (!StartServiceCtrlDispatcherW(service_table))
+ logmsg("StartServiceCtrlDispatcher failed\n");
+
return 0;
}
{
SP_DEVICE_INTERFACE_DATA interface_data;
SP_DEVINFO_DATA device_data;
- PSP_DEVICE_INTERFACE_DETAIL_DATA detail_data;
+ PSP_DEVICE_INTERFACE_DETAIL_DATA_W detail_data;
HDEVINFO dev_info;
DWORD length;
int index = 0;
const GUID category_guid = {STATIC_KSCATEGORY_AUDIO};
- dev_info = SetupDiGetClassDevsEx(&category_guid,
- NULL,
- NULL,
- DIGCF_PRESENT | DIGCF_DEVICEINTERFACE,
- NULL,
- NULL,
- NULL);
+ dev_info = SetupDiGetClassDevsExW(&category_guid,
+ NULL,
+ NULL,
+ DIGCF_PRESENT | DIGCF_DEVICEINTERFACE,
+ NULL,
+ NULL,
+ NULL);
/* printf("%s:\n", ClassString); */
+ (MAX_PATH * sizeof(WCHAR));
detail_data =
- (PSP_DEVICE_INTERFACE_DETAIL_DATA)HeapAlloc(GetProcessHeap(),
- 0,
- length);
+ (PSP_DEVICE_INTERFACE_DETAIL_DATA_W)HeapAlloc(GetProcessHeap(),
+ 0,
+ length);
while (
SetupDiEnumDeviceInterfaces(dev_info,
ZeroMemory(detail_data, length);
/* NOTE: We don't actually use device_data... */
- detail_data->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
+ detail_data->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_W);
device_data.cbSize = sizeof(device_data);
device_data.Reserved = 0;
- SetupDiGetDeviceInterfaceDetail(dev_info,
- &interface_data,
- detail_data,
- length,
- NULL,
- &device_data);
+ SetupDiGetDeviceInterfaceDetailW(dev_info,
+ &interface_data,
+ detail_data,
+ length,
+ NULL,
+ &device_data);
list_node = CreateDeviceDescriptor(detail_data->DevicePath, TRUE);
AppendAudioDeviceToList(list_node);
notification_filter.dbcc_classguid = wdmaud_guid;
device_notification_handle =
- RegisterDeviceNotification((HANDLE) service_status_handle,
- ¬ification_filter,
- DEVICE_NOTIFY_SERVICE_HANDLE
+ RegisterDeviceNotificationW((HANDLE) service_status_handle,
+ ¬ification_filter,
+ DEVICE_NOTIFY_SERVICE_HANDLE
/* |
DEVICE_NOTIFY_ALL_INTERFACE_CLASSES*/);
logmsg("Creating file mapping\n");
/* Expose our device list to the world */
- device_list_file = CreateFileMapping(INVALID_HANDLE_VALUE,
- NULL,
- PAGE_READWRITE,
- 0,
- max_size,
- AUDIO_LIST_NAME);
+ device_list_file = CreateFileMappingW(INVALID_HANDLE_VALUE,
+ NULL,
+ PAGE_READWRITE,
+ 0,
+ max_size,
+ AUDIO_LIST_NAME);
if ( ! device_list_file )
{