mirror of
https://github.com/reactos/reactos.git
synced 2025-04-19 12:08:55 +00:00
moved metafile functions into objects/metafile.c
svn path=/trunk/; revision=6652
This commit is contained in:
parent
f22cfcebd1
commit
a4b7ce555c
4 changed files with 334 additions and 323 deletions
|
@ -1,4 +1,4 @@
|
|||
# $Id: makefile,v 1.33 2003/09/06 16:50:10 jimtabor Exp $
|
||||
# $Id: makefile,v 1.34 2003/11/15 15:18:05 weiden Exp $
|
||||
|
||||
PATH_TO_TOP = ../..
|
||||
|
||||
|
@ -39,6 +39,7 @@ OBJECTS_OBJECTS = \
|
|||
objects/dc.o \
|
||||
objects/fillshap.o \
|
||||
objects/line.o \
|
||||
objects/metafile.o \
|
||||
objects/pen.o \
|
||||
objects/region.o \
|
||||
objects/text.o
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: stubsa.c,v 1.24 2003/08/19 11:48:49 weiden Exp $
|
||||
/* $Id: stubsa.c,v 1.25 2003/11/15 15:18:06 weiden Exp $
|
||||
*
|
||||
* reactos/lib/gdi32/misc/stubs.c
|
||||
*
|
||||
|
@ -16,7 +16,6 @@
|
|||
#include <windows.h>
|
||||
#include <ddk/ntddk.h>
|
||||
#include <win32k/text.h>
|
||||
#include <win32k/metafile.h>
|
||||
#include <win32k/dc.h>
|
||||
#include <rosrtl/devmode.h>
|
||||
#include <rosrtl/logfont.h>
|
||||
|
@ -56,34 +55,6 @@ AddFontResourceA ( LPCSTR lpszFilename )
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HMETAFILE
|
||||
STDCALL
|
||||
CopyMetaFileA(
|
||||
HMETAFILE Src,
|
||||
LPCSTR lpszFile
|
||||
)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
PWSTR lpszFileW;
|
||||
HMETAFILE rc = 0;
|
||||
|
||||
Status = HEAP_strdupA2W ( &lpszFileW, lpszFile );
|
||||
if (!NT_SUCCESS (Status))
|
||||
SetLastError (RtlNtStatusToDosError(Status));
|
||||
else
|
||||
{
|
||||
rc = NtGdiCopyMetaFile ( Src, lpszFileW );
|
||||
|
||||
HEAP_free ( lpszFileW );
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
|
@ -134,32 +105,6 @@ CreateICA(
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HDC
|
||||
STDCALL
|
||||
CreateMetaFileA(
|
||||
LPCSTR lpszFile
|
||||
)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
PWSTR lpszFileW;
|
||||
HDC rc = 0;
|
||||
|
||||
Status = HEAP_strdupA2W ( &lpszFileW, lpszFile );
|
||||
if (!NT_SUCCESS (Status))
|
||||
SetLastError (RtlNtStatusToDosError(Status));
|
||||
else
|
||||
{
|
||||
rc = NtGdiCreateMetaFile ( lpszFileW );
|
||||
|
||||
HEAP_free ( lpszFileW );
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
|
@ -423,33 +368,6 @@ GetGlyphOutlineA(
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HMETAFILE
|
||||
STDCALL
|
||||
GetMetaFileA(
|
||||
LPCSTR lpszMetaFile
|
||||
)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
LPWSTR lpszMetaFileW;
|
||||
HMETAFILE rc = 0;
|
||||
|
||||
Status = HEAP_strdupA2W ( &lpszMetaFileW, lpszMetaFile );
|
||||
if (!NT_SUCCESS (Status))
|
||||
SetLastError (RtlNtStatusToDosError(Status));
|
||||
else
|
||||
{
|
||||
rc = NtGdiGetMetaFile ( lpszMetaFileW );
|
||||
|
||||
HEAP_free ( lpszMetaFileW );
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
|
@ -564,146 +482,6 @@ RemoveFontResourceA(
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HENHMETAFILE
|
||||
STDCALL
|
||||
CopyEnhMetaFileA(
|
||||
HENHMETAFILE hemfSrc,
|
||||
LPCSTR lpszFile
|
||||
)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
LPWSTR lpszFileW;
|
||||
HENHMETAFILE rc = 0;
|
||||
|
||||
Status = HEAP_strdupA2W ( &lpszFileW, lpszFile );
|
||||
if (!NT_SUCCESS (Status))
|
||||
SetLastError (RtlNtStatusToDosError(Status));
|
||||
else
|
||||
{
|
||||
rc = NtGdiCopyEnhMetaFile ( hemfSrc, lpszFileW );
|
||||
|
||||
HEAP_free ( lpszFileW );
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HDC
|
||||
STDCALL
|
||||
CreateEnhMetaFileA(
|
||||
HDC hdc,
|
||||
LPCSTR lpFileName,
|
||||
CONST RECT *lpRect,
|
||||
LPCSTR lpDescription
|
||||
)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
LPWSTR lpFileNameW, lpDescriptionW;
|
||||
HDC rc = 0;
|
||||
|
||||
Status = HEAP_strdupA2W ( &lpFileNameW, lpFileName );
|
||||
if (!NT_SUCCESS (Status))
|
||||
SetLastError (RtlNtStatusToDosError(Status));
|
||||
else
|
||||
{
|
||||
Status = HEAP_strdupA2W ( &lpDescriptionW, lpDescription );
|
||||
if (!NT_SUCCESS (Status))
|
||||
SetLastError (RtlNtStatusToDosError(Status));
|
||||
else
|
||||
{
|
||||
rc = NtGdiCreateEnhMetaFile (
|
||||
hdc, lpFileNameW, (CONST LPRECT)lpRect, lpDescriptionW );
|
||||
|
||||
HEAP_free ( lpDescriptionW );
|
||||
}
|
||||
HEAP_free ( lpFileNameW );
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HENHMETAFILE
|
||||
STDCALL
|
||||
GetEnhMetaFileA(
|
||||
LPCSTR lpszMetaFile
|
||||
)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
LPWSTR lpszMetaFileW;
|
||||
HENHMETAFILE rc = 0;
|
||||
|
||||
Status = HEAP_strdupA2W ( &lpszMetaFileW, lpszMetaFile );
|
||||
if (!NT_SUCCESS (Status))
|
||||
SetLastError (RtlNtStatusToDosError(Status));
|
||||
else
|
||||
{
|
||||
rc = NtGdiGetEnhMetaFile ( lpszMetaFileW );
|
||||
|
||||
HEAP_free ( lpszMetaFileW );
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
UINT
|
||||
STDCALL
|
||||
GetEnhMetaFileDescriptionA(
|
||||
HENHMETAFILE hemf,
|
||||
UINT cchBuffer,
|
||||
LPSTR lpszDescription
|
||||
)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
LPWSTR lpszDescriptionW;
|
||||
UINT rc;
|
||||
|
||||
if ( lpszDescription && cchBuffer )
|
||||
{
|
||||
lpszDescriptionW = (LPWSTR)HEAP_alloc ( cchBuffer*sizeof(WCHAR) );
|
||||
if ( !lpszDescriptionW )
|
||||
{
|
||||
SetLastError (RtlNtStatusToDosError(STATUS_NO_MEMORY));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
lpszDescriptionW = NULL;
|
||||
|
||||
rc = NtGdiGetEnhMetaFileDescription ( hemf, cchBuffer, lpszDescriptionW );
|
||||
|
||||
if ( lpszDescription && cchBuffer )
|
||||
{
|
||||
Status = RtlUnicodeToMultiByteN ( lpszDescription,
|
||||
cchBuffer,
|
||||
NULL,
|
||||
lpszDescriptionW,
|
||||
cchBuffer );
|
||||
HEAP_free ( lpszDescriptionW );
|
||||
if ( !NT_SUCCESS(Status) )
|
||||
{
|
||||
SetLastError (RtlNtStatusToDosError(Status));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: stubsw.c,v 1.20 2003/08/19 11:48:49 weiden Exp $
|
||||
/* $Id: stubsw.c,v 1.21 2003/11/15 15:18:06 weiden Exp $
|
||||
*
|
||||
* reactos/lib/gdi32/misc/stubs.c
|
||||
*
|
||||
|
@ -36,20 +36,6 @@ AddFontResourceW ( LPCWSTR lpszFilename )
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HMETAFILE
|
||||
STDCALL
|
||||
CopyMetaFileW(
|
||||
HMETAFILE Src,
|
||||
LPCWSTR File
|
||||
)
|
||||
{
|
||||
return NtGdiCopyMetaFile ( Src, File );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
|
@ -69,19 +55,6 @@ CreateICW(
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HDC
|
||||
STDCALL
|
||||
CreateMetaFileW(
|
||||
LPCWSTR lpszFile
|
||||
)
|
||||
{
|
||||
return NtGdiCreateMetaFile ( lpszFile );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
|
@ -291,19 +264,6 @@ GetGlyphOutlineW(
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HMETAFILE
|
||||
STDCALL
|
||||
GetMetaFileW(
|
||||
LPCWSTR lpszMetaFile
|
||||
)
|
||||
{
|
||||
return NtGdiGetMetaFile ( lpszMetaFile );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
|
@ -386,64 +346,6 @@ RemoveFontResourceW(
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HENHMETAFILE
|
||||
STDCALL
|
||||
CopyEnhMetaFileW(
|
||||
HENHMETAFILE hemfSrc,
|
||||
LPCWSTR lpszFile
|
||||
)
|
||||
{
|
||||
return NtGdiCopyEnhMetaFile ( hemfSrc, lpszFile );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HDC
|
||||
STDCALL
|
||||
CreateEnhMetaFileW(
|
||||
HDC hdc,
|
||||
LPCWSTR lpFileName,
|
||||
CONST RECT *lpRect,
|
||||
LPCWSTR lpDescription
|
||||
)
|
||||
{
|
||||
return NtGdiCreateEnhMetaFile ( hdc, lpFileName, (CONST LPRECT)lpRect, lpDescription );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HENHMETAFILE
|
||||
STDCALL
|
||||
GetEnhMetaFileW(
|
||||
LPCWSTR lpszMetaFile
|
||||
)
|
||||
{
|
||||
return NtGdiGetEnhMetaFile ( lpszMetaFile );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
UINT
|
||||
STDCALL
|
||||
GetEnhMetaFileDescriptionW(
|
||||
HENHMETAFILE hemf,
|
||||
UINT cchBuffer,
|
||||
LPWSTR lpszDescription
|
||||
)
|
||||
{
|
||||
return NtGdiGetEnhMetaFileDescription ( hemf, cchBuffer, lpszDescription );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
|
|
330
reactos/lib/gdi32/objects/metafile.c
Normal file
330
reactos/lib/gdi32/objects/metafile.c
Normal file
|
@ -0,0 +1,330 @@
|
|||
#ifdef UNICODE
|
||||
#undef UNICODE
|
||||
#endif
|
||||
|
||||
#undef WIN32_LEAN_AND_MEAN
|
||||
#include <string.h>
|
||||
#include <windows.h>
|
||||
#include <ddk/ntddk.h>
|
||||
#include <internal/heap.h>
|
||||
#include <win32k/kapi.h>
|
||||
#include <win32k/metafile.h>
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HMETAFILE
|
||||
STDCALL
|
||||
CopyMetaFileW(
|
||||
HMETAFILE Src,
|
||||
LPCWSTR File
|
||||
)
|
||||
{
|
||||
return NtGdiCopyMetaFile ( Src, File );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HMETAFILE
|
||||
STDCALL
|
||||
CopyMetaFileA(
|
||||
HMETAFILE Src,
|
||||
LPCSTR lpszFile
|
||||
)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
PWSTR lpszFileW;
|
||||
HMETAFILE rc = 0;
|
||||
|
||||
Status = HEAP_strdupA2W ( &lpszFileW, lpszFile );
|
||||
if (!NT_SUCCESS (Status))
|
||||
SetLastError (RtlNtStatusToDosError(Status));
|
||||
else
|
||||
{
|
||||
rc = NtGdiCopyMetaFile ( Src, lpszFileW );
|
||||
|
||||
HEAP_free ( lpszFileW );
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HDC
|
||||
STDCALL
|
||||
CreateMetaFileW(
|
||||
LPCWSTR lpszFile
|
||||
)
|
||||
{
|
||||
return NtGdiCreateMetaFile ( lpszFile );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HDC
|
||||
STDCALL
|
||||
CreateMetaFileA(
|
||||
LPCSTR lpszFile
|
||||
)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
PWSTR lpszFileW;
|
||||
HDC rc = 0;
|
||||
|
||||
Status = HEAP_strdupA2W ( &lpszFileW, lpszFile );
|
||||
if (!NT_SUCCESS (Status))
|
||||
SetLastError (RtlNtStatusToDosError(Status));
|
||||
else
|
||||
{
|
||||
rc = NtGdiCreateMetaFile ( lpszFileW );
|
||||
|
||||
HEAP_free ( lpszFileW );
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HMETAFILE
|
||||
STDCALL
|
||||
GetMetaFileW(
|
||||
LPCWSTR lpszMetaFile
|
||||
)
|
||||
{
|
||||
return NtGdiGetMetaFile ( lpszMetaFile );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HMETAFILE
|
||||
STDCALL
|
||||
GetMetaFileA(
|
||||
LPCSTR lpszMetaFile
|
||||
)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
LPWSTR lpszMetaFileW;
|
||||
HMETAFILE rc = 0;
|
||||
|
||||
Status = HEAP_strdupA2W ( &lpszMetaFileW, lpszMetaFile );
|
||||
if (!NT_SUCCESS (Status))
|
||||
SetLastError (RtlNtStatusToDosError(Status));
|
||||
else
|
||||
{
|
||||
rc = NtGdiGetMetaFile ( lpszMetaFileW );
|
||||
|
||||
HEAP_free ( lpszMetaFileW );
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HENHMETAFILE
|
||||
STDCALL
|
||||
CopyEnhMetaFileW(
|
||||
HENHMETAFILE hemfSrc,
|
||||
LPCWSTR lpszFile
|
||||
)
|
||||
{
|
||||
return NtGdiCopyEnhMetaFile ( hemfSrc, lpszFile );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HENHMETAFILE
|
||||
STDCALL
|
||||
CopyEnhMetaFileA(
|
||||
HENHMETAFILE hemfSrc,
|
||||
LPCSTR lpszFile
|
||||
)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
LPWSTR lpszFileW;
|
||||
HENHMETAFILE rc = 0;
|
||||
|
||||
Status = HEAP_strdupA2W ( &lpszFileW, lpszFile );
|
||||
if (!NT_SUCCESS (Status))
|
||||
SetLastError (RtlNtStatusToDosError(Status));
|
||||
else
|
||||
{
|
||||
rc = NtGdiCopyEnhMetaFile ( hemfSrc, lpszFileW );
|
||||
|
||||
HEAP_free ( lpszFileW );
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HDC
|
||||
STDCALL
|
||||
CreateEnhMetaFileW(
|
||||
HDC hdc,
|
||||
LPCWSTR lpFileName,
|
||||
CONST RECT *lpRect,
|
||||
LPCWSTR lpDescription
|
||||
)
|
||||
{
|
||||
return NtGdiCreateEnhMetaFile ( hdc, lpFileName, (CONST LPRECT)lpRect, lpDescription );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HDC
|
||||
STDCALL
|
||||
CreateEnhMetaFileA(
|
||||
HDC hdc,
|
||||
LPCSTR lpFileName,
|
||||
CONST RECT *lpRect,
|
||||
LPCSTR lpDescription
|
||||
)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
LPWSTR lpFileNameW, lpDescriptionW;
|
||||
HDC rc = 0;
|
||||
|
||||
Status = HEAP_strdupA2W ( &lpFileNameW, lpFileName );
|
||||
if (!NT_SUCCESS (Status))
|
||||
SetLastError (RtlNtStatusToDosError(Status));
|
||||
else
|
||||
{
|
||||
Status = HEAP_strdupA2W ( &lpDescriptionW, lpDescription );
|
||||
if (!NT_SUCCESS (Status))
|
||||
SetLastError (RtlNtStatusToDosError(Status));
|
||||
else
|
||||
{
|
||||
rc = NtGdiCreateEnhMetaFile (
|
||||
hdc, lpFileNameW, (CONST LPRECT)lpRect, lpDescriptionW );
|
||||
|
||||
HEAP_free ( lpDescriptionW );
|
||||
}
|
||||
HEAP_free ( lpFileNameW );
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HENHMETAFILE
|
||||
STDCALL
|
||||
GetEnhMetaFileW(
|
||||
LPCWSTR lpszMetaFile
|
||||
)
|
||||
{
|
||||
return NtGdiGetEnhMetaFile ( lpszMetaFile );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
HENHMETAFILE
|
||||
STDCALL
|
||||
GetEnhMetaFileA(
|
||||
LPCSTR lpszMetaFile
|
||||
)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
LPWSTR lpszMetaFileW;
|
||||
HENHMETAFILE rc = 0;
|
||||
|
||||
Status = HEAP_strdupA2W ( &lpszMetaFileW, lpszMetaFile );
|
||||
if (!NT_SUCCESS (Status))
|
||||
SetLastError (RtlNtStatusToDosError(Status));
|
||||
else
|
||||
{
|
||||
rc = NtGdiGetEnhMetaFile ( lpszMetaFileW );
|
||||
|
||||
HEAP_free ( lpszMetaFileW );
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
UINT
|
||||
STDCALL
|
||||
GetEnhMetaFileDescriptionW(
|
||||
HENHMETAFILE hemf,
|
||||
UINT cchBuffer,
|
||||
LPWSTR lpszDescription
|
||||
)
|
||||
{
|
||||
return NtGdiGetEnhMetaFileDescription ( hemf, cchBuffer, lpszDescription );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
UINT
|
||||
STDCALL
|
||||
GetEnhMetaFileDescriptionA(
|
||||
HENHMETAFILE hemf,
|
||||
UINT cchBuffer,
|
||||
LPSTR lpszDescription
|
||||
)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
LPWSTR lpszDescriptionW;
|
||||
UINT rc;
|
||||
|
||||
if ( lpszDescription && cchBuffer )
|
||||
{
|
||||
lpszDescriptionW = (LPWSTR)HEAP_alloc ( cchBuffer*sizeof(WCHAR) );
|
||||
if ( !lpszDescriptionW )
|
||||
{
|
||||
SetLastError (RtlNtStatusToDosError(STATUS_NO_MEMORY));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
lpszDescriptionW = NULL;
|
||||
|
||||
rc = NtGdiGetEnhMetaFileDescription ( hemf, cchBuffer, lpszDescriptionW );
|
||||
|
||||
if ( lpszDescription && cchBuffer )
|
||||
{
|
||||
Status = RtlUnicodeToMultiByteN ( lpszDescription,
|
||||
cchBuffer,
|
||||
NULL,
|
||||
lpszDescriptionW,
|
||||
cchBuffer );
|
||||
HEAP_free ( lpszDescriptionW );
|
||||
if ( !NT_SUCCESS(Status) )
|
||||
{
|
||||
SetLastError (RtlNtStatusToDosError(Status));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
Loading…
Reference in a new issue