2 * Win32 advapi functions
4 * Copyright 1995 Sven Verdoolaege
5 * Copyright 1998 Juergen Schmied
6 * Copyright 2003 Mike Hearn
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28 /******************************************************************************
29 * BackupEventLogA [ADVAPI32.@]
32 BackupEventLogA (HANDLE hEventLog
,
33 LPCSTR lpBackupFileName
)
39 /******************************************************************************
40 * BackupEventLogW [ADVAPI32.@]
47 BackupEventLogW (HANDLE hEventLog
,
48 LPCWSTR lpBackupFileName
)
55 /******************************************************************************
56 * ClearEventLogA [ADVAPI32.@]
59 ClearEventLogA (HANDLE hEventLog
,
60 LPCSTR lpBackupFileName
)
67 /******************************************************************************
68 * ClearEventLogW [ADVAPI32.@]
71 ClearEventLogW (HANDLE hEventLog
,
72 LPCWSTR lpBackupFileName
)
79 /******************************************************************************
80 * CloseEventLog [ADVAPI32.@]
83 CloseEventLog (HANDLE hEventLog
)
90 /******************************************************************************
91 * DeregisterEventSource [ADVAPI32.@]
92 * Closes a handle to the specified event log
95 * hEventLog [I] Handle to event log
100 DeregisterEventSource (HANDLE hEventLog
)
102 DPRINT1("(%p): stub\n",hEventLog
);
107 /******************************************************************************
108 * GetNumberOfEventLogRecords [ADVAPI32.@]
115 GetNumberOfEventLogRecords (HANDLE hEventLog
,
116 PDWORD NumberOfRecords
)
123 /******************************************************************************
124 * GetOldestEventLogRecord [ADVAPI32.@]
131 GetOldestEventLogRecord (HANDLE hEventLog
,
139 /******************************************************************************
140 * NotifyChangeEventLog [ADVAPI32.@]
147 NotifyChangeEventLog (HANDLE hEventLog
,
155 /******************************************************************************
156 * OpenBackupEventLogA [ADVAPI32.@]
159 OpenBackupEventLogA (LPCSTR lpUNCServerName
,
167 /******************************************************************************
168 * OpenBackupEventLogW [ADVAPI32.@]
175 OpenBackupEventLogW (LPCWSTR lpUNCServerName
,
183 /******************************************************************************
184 * OpenEventLogA [ADVAPI32.@]
187 OpenEventLogA (LPCSTR lpUNCServerName
,
190 DPRINT1("(%s,%s),stub!\n",
191 lpUNCServerName
, lpSourceName
);
192 return (HANDLE
)0xcafe4242;
196 /******************************************************************************
197 * OpenEventLogW [ADVAPI32.@]
204 OpenEventLogW (LPCWSTR lpUNCServerName
,
205 LPCWSTR lpSourceName
)
212 /******************************************************************************
213 * ReadEventLogA [ADVAPI32.@]
216 ReadEventLogA (HANDLE hEventLog
,
218 DWORD dwRecordOffset
,
220 DWORD nNumberOfBytesToRead
,
222 DWORD
*pnMinNumberOfBytesNeeded
)
229 /******************************************************************************
230 * ReadEventLogW [ADVAPI32.@]
237 * nNumberOfBytesToRead []
239 * pnMinNumberOfBytesNeeded []
242 ReadEventLogW (HANDLE hEventLog
,
244 DWORD dwRecordOffset
,
246 DWORD nNumberOfBytesToRead
,
248 DWORD
*pnMinNumberOfBytesNeeded
)
255 /******************************************************************************
256 * RegisterEventSourceA [ADVAPI32.@]
259 RegisterEventSourceA (LPCSTR lpUNCServerName
,
262 UNICODE_STRING UNCServerName
;
263 UNICODE_STRING SourceName
;
266 RtlCreateUnicodeStringFromAsciiz (&UNCServerName
,
267 (PSTR
)lpUNCServerName
);
268 RtlCreateUnicodeStringFromAsciiz (&SourceName
,
271 ret
= RegisterEventSourceW (UNCServerName
.Buffer
,
274 RtlFreeUnicodeString (&UNCServerName
);
275 RtlFreeUnicodeString (&SourceName
);
281 /******************************************************************************
282 * RegisterEventSourceW [ADVAPI32.@]
283 * Returns a registered handle to an event log
286 * lpUNCServerName [I] Server name for source
287 * lpSourceName [I] Source name for registered handle
294 RegisterEventSourceW (LPCWSTR lpUNCServerName
,
295 LPCWSTR lpSourceName
)
297 DPRINT1("(%S, %S): stub\n",
298 lpUNCServerName
, lpSourceName
);
303 /******************************************************************************
304 * ReportEventA [ADVAPI32.@]
307 ReportEventA (HANDLE hEventLog
,
317 LPCWSTR
*wideStrArray
;
322 if (wNumStrings
== 0)
325 if (lpStrings
== NULL
)
328 wideStrArray
= HeapAlloc (GetProcessHeap (),
330 sizeof(LPCWSTR
) * wNumStrings
);
332 for (i
= 0; i
< wNumStrings
; i
++)
334 RtlCreateUnicodeStringFromAsciiz (&str
,
336 wideStrArray
[i
] = str
.Buffer
;
339 ret
= ReportEventW (hEventLog
,
349 for (i
= 0; i
< wNumStrings
; i
++)
353 HeapFree (GetProcessHeap (),
355 (LPSTR
)wideStrArray
[i
]);
359 HeapFree (GetProcessHeap(),
367 /******************************************************************************
368 * ReportEventW [ADVAPI32.@]
382 ReportEventW (HANDLE hEventLog
,
396 if (wNumStrings
== 0)
399 if (lpStrings
== NULL
)
402 for (i
= 0; i
< wNumStrings
; i
++)
406 case EVENTLOG_SUCCESS
:
407 DPRINT1("Success: %S\n", lpStrings
[i
]);
410 case EVENTLOG_ERROR_TYPE
:
411 DPRINT1("Error: %S\n", lpStrings
[i
]);
414 case EVENTLOG_WARNING_TYPE
:
415 DPRINT1("Warning: %S\n", lpStrings
[i
]);
419 DPRINT1("Type %hu: %S\n", wType
, lpStrings
[i
]);