|
|
//
// SafeReg.h
//
// Functions to ensure strings read from the registry are null-terminated.
//
// History:
//
// 2002-03-20 KenSh Created
//
// Copyright (c) 2002 Microsoft Corporation
//
#pragma once
#define REG_E_MORE_DATA HRESULT_FROM_WIN32(ERROR_MORE_DATA)
// Override these if you need a custom allocator for the safe reg functions
#ifndef SafeRegMalloc
#define SafeRegMalloc malloc
#define SafeRegFree(p) ((p) ? free(p) : NULL)
#endif
HRESULT WINAPI SafeRegQueryStringValueCch ( IN HKEY hkey, IN LPCTSTR pszValueName, OUT LPTSTR pszBuf, IN int cchBuf, OUT OPTIONAL int* pcchValueSize, // S_OK: chars written, excluding trailing null
// REG_E_MORE_DATA: required size, including null
OUT OPTIONAL BOOL* pfExpandSz = NULL // TRUE if reg string is actually REG_EXPAND_SZ
);
HRESULT WINAPI SafeRegQueryStringValueCb ( IN HKEY hkey, IN LPCTSTR pszValueName, OUT LPTSTR pszBuf, IN int cbBuf, OUT OPTIONAL int* pcbValueSize, // S_OK: bytes written, excluding trailing null
// REG_E_MORE_DATA: required size, including null
OUT OPTIONAL BOOL* pfExpandSz = NULL // TRUE if reg string is actually REG_EXPAND_SZ
);
HRESULT WINAPI SafeRegQueryMultiStringValueCch ( IN HKEY hkey, IN LPCTSTR pszValueName, OUT LPTSTR pszBuf, IN int cchBuf, OUT OPTIONAL int* pcchValueSize // S_OK: chars written, excluding final trailing null
// REG_E_MORE_DATA: required size, including nulls
);
HRESULT WINAPI SafeRegQueryMultiStringValueCb ( IN HKEY hkey, IN LPCTSTR pszValueName, OUT LPTSTR pszBuf, IN int cbBuf, OUT OPTIONAL int* pcbValueSize // S_OK: bytes written, excluding final trailing null
// REG_E_MORE_DATA: required size, including nulls
);
HRESULT WINAPI SafeRegQueryStringValueCchAlloc ( IN HKEY hkey, IN LPCTSTR pszValueName, OUT LPTSTR* ppszBuf, OUT OPTIONAL int* pcchValueSize, // chars written, excluding trailing null
OUT OPTIONAL BOOL* pfExpandSz = NULL //TRUE if reg string is actually REG_EXPAND_SZ
);
HRESULT WINAPI SafeRegQueryStringValueCbAlloc ( IN HKEY hkey, IN LPCTSTR pszValueName, OUT LPTSTR* ppszBuf, OUT OPTIONAL int* pcbValueSize, // bytes written, excluding trailing null
OUT OPTIONAL BOOL* pfExpandSz = NULL // TRUE if reg string is actually REG_EXPAND_SZ
);
HRESULT WINAPI SafeRegQueryMultiStringValueCchAlloc ( IN HKEY hkey, IN LPCTSTR pszValueName, OUT LPTSTR* ppszBuf, OUT OPTIONAL int* pcchValueSize // chars written, excluding final trailing null
);
HRESULT WINAPI SafeRegQueryMultiStringValueCbAlloc ( IN HKEY hkey, IN LPCTSTR pszValueName, OUT LPTSTR* ppszBuf, OUT OPTIONAL int* pcchValueSize // chars written, excluding final trailing null
);
|