|
|
/******************************************************************************
Copyright (c) 2002 Microsoft Corporation
Module Name: wusafefn.h
Abstract: definitions for WU safe functions
******************************************************************************/
#pragma once
#include "SafeFile.h" // file operations (SafeCreateFile, etc.)
#include "SafeReg.h" // registry operations (SafeRegQueryStringValueCch, etc.)
// path manipulation
HRESULT PathCchCombineA(LPSTR szPath, DWORD cchPathBuff, LPCSTR szPrefix, LPCSTR szSuffix); HRESULT PathCchCombineW(LPWSTR szPath, DWORD cchPathBuff, LPCWSTR szPrefix, LPCWSTR szSuffix); HRESULT PathCchAppendA(LPSTR szPath, DWORD cchPathBuff, LPCSTR szNew); HRESULT PathCchAppendW(LPWSTR szPath, DWORD cchPathBuff, LPCWSTR szNew); HRESULT PathCchAddBackslashA(LPSTR szPath, DWORD cchPathBuff); HRESULT PathCchAddBackslashW(LPWSTR szPath, DWORD cchPathBuff); HRESULT PathCchCanonicalizeA(LPSTR pszDest, DWORD cchDest, LPCSTR pszSrc); HRESULT PathCchCanonicalizeW(LPWSTR pszDest, DWORD cchDest, LPCWSTR pszSrc); HRESULT PathCchAddExtensionA(LPSTR pszPath, DWORD cchPath, LPCSTR pszExt); HRESULT PathCchAddExtensionW(LPWSTR pszPath, DWORD cchPath, LPCWSTR pszExt); HRESULT PathCchRenameExtensionA(LPSTR pszPath, DWORD cchPath, LPCSTR pszExt); HRESULT PathCchRenameExtensionW(LPWSTR pszPath, DWORD cchPath, LPCWSTR pszExt);
#if defined(UNICODE) || defined(_UNICODE)
#define PathCchCombine PathCchCombineW
#define PathCchAppend PathCchAppendW
#define PathCchAddBackslash PathCchAddBackslashW
#define PathCchCanonicalize PathCchCanonicalizeW
#define PathCchAddExtension PathCchAddExtensionW
#define PathCchRenameExtension PathCchRenameExtensionW
#else
#define PathCchCombine PathCchCombineA
#define PathCchAppend PathCchAppendA
#define PathCchAddBackslash PathCchAddBackslashA
#define PathCchCanonicalize PathCchCanonicalizeA
#define PathCchAddExtension PathCchAddExtensionA
#define PathCchRenameExtension PathCchRenameExtensionA
#endif
// Load library
HMODULE WINAPI LoadLibraryFromSystemDir(LPCTSTR szModule);
// Critical sections
// Spin count passed to InitializeCriticalSectionAndSpinCount
#define DEFAULT_CS_SPIN_COUNT 0x80000FA0
BOOL WINAPI WUInitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION lpcs, DWORD dwSpinCount);
inline BOOL WINAPI SafeInitializeCriticalSection(LPCRITICAL_SECTION lpcs) { return WUInitializeCriticalSectionAndSpinCount(lpcs, DEFAULT_CS_SPIN_COUNT); }
|