Address code analysis warnings
Signed-off-by: Simon Rozman <simon@rozman.si>
This commit is contained in:
parent
ddf3330545
commit
ae62e57126
@ -163,11 +163,11 @@ private: \
|
|||||||
///
|
///
|
||||||
#define HANDLE_IMPL(C, INVAL) \
|
#define HANDLE_IMPL(C, INVAL) \
|
||||||
public: \
|
public: \
|
||||||
inline C ( ) { } \
|
inline C ( ) { } \
|
||||||
inline C (_In_ handle_type h) : handle<handle_type, INVAL>( h ) { } \
|
inline C (_In_opt_ handle_type h) : handle<handle_type, INVAL>( h ) { } \
|
||||||
inline C (_Inout_ C &&h) noexcept : handle<handle_type, INVAL>(std::move(h)) { } \
|
inline C (_Inout_ C &&h) noexcept : handle<handle_type, INVAL>(std::move(h)) { } \
|
||||||
inline C& operator=(_In_ handle_type h) { handle<handle_type, INVAL>::operator=( h ); return *this; } \
|
inline C& operator=(_In_opt_ handle_type h) { handle<handle_type, INVAL>::operator=( h ); return *this; } \
|
||||||
inline C& operator=(_Inout_ C &&h) noexcept { handle<handle_type, INVAL>::operator=(std::move(h)); return *this; } \
|
inline C& operator=(_Inout_ C &&h) noexcept { handle<handle_type, INVAL>::operator=(std::move(h)); return *this; } \
|
||||||
WINSTD_NONCOPYABLE(C)
|
WINSTD_NONCOPYABLE(C)
|
||||||
|
|
||||||
///
|
///
|
||||||
@ -175,13 +175,13 @@ WINSTD_NONCOPYABLE(C)
|
|||||||
///
|
///
|
||||||
#define DPLHANDLE_IMPL(C, INVAL) \
|
#define DPLHANDLE_IMPL(C, INVAL) \
|
||||||
public: \
|
public: \
|
||||||
inline C ( ) { } \
|
inline C ( ) { } \
|
||||||
inline C (_In_ handle_type h) : dplhandle<handle_type, INVAL>( h ) { } \
|
inline C (_In_opt_ handle_type h) : dplhandle<handle_type, INVAL>( h ) { } \
|
||||||
inline C (_In_ const C &h) : dplhandle<handle_type, INVAL>(duplicate_internal(h.m_h)) { } \
|
inline C (_In_ const C &h) : dplhandle<handle_type, INVAL>(duplicate_internal(h.m_h)) { } \
|
||||||
inline C (_Inout_ C &&h) noexcept : dplhandle<handle_type, INVAL>(std::move (h )) { } \
|
inline C (_Inout_ C &&h) noexcept : dplhandle<handle_type, INVAL>(std::move (h )) { } \
|
||||||
inline C& operator=(_In_ handle_type h) { dplhandle<handle_type, INVAL>::operator=( h ); return *this; } \
|
inline C& operator=(_In_opt_ handle_type h) { dplhandle<handle_type, INVAL>::operator=( h ); return *this; } \
|
||||||
inline C& operator=(_In_ const C &h) { dplhandle<handle_type, INVAL>::operator=( h ); return *this; } \
|
inline C& operator=(_In_ const C &h) { dplhandle<handle_type, INVAL>::operator=( h ); return *this; } \
|
||||||
inline C& operator=(_Inout_ C &&h) noexcept { dplhandle<handle_type, INVAL>::operator=(std::move(h)); return *this; } \
|
inline C& operator=(_Inout_ C &&h) noexcept { dplhandle<handle_type, INVAL>::operator=(std::move(h)); return *this; } \
|
||||||
private:
|
private:
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
@ -691,7 +691,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// \param[in] h Initial object handle value
|
/// \param[in] h Initial object handle value
|
||||||
///
|
///
|
||||||
inline handle(_In_ handle_type h) : m_h(h)
|
inline handle(_In_opt_ handle_type h) : m_h(h)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -718,7 +718,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// \param[in] h Object handle value
|
/// \param[in] h Object handle value
|
||||||
///
|
///
|
||||||
inline handle<handle_type, INVAL>& operator=(_In_ handle_type h)
|
inline handle<handle_type, INVAL>& operator=(_In_opt_ handle_type h)
|
||||||
{
|
{
|
||||||
attach(h);
|
attach(h);
|
||||||
return *this;
|
return *this;
|
||||||
@ -803,7 +803,7 @@ namespace winstd
|
|||||||
/// - Non zero when object handle is less than h;
|
/// - Non zero when object handle is less than h;
|
||||||
/// - Zero otherwise.
|
/// - Zero otherwise.
|
||||||
///
|
///
|
||||||
inline bool operator<(_In_ handle_type h) const
|
inline bool operator<(_In_opt_ handle_type h) const
|
||||||
{
|
{
|
||||||
return m_h < h;
|
return m_h < h;
|
||||||
}
|
}
|
||||||
@ -816,7 +816,7 @@ namespace winstd
|
|||||||
/// - Non zero when object handle is less than or equal to h;
|
/// - Non zero when object handle is less than or equal to h;
|
||||||
/// - Zero otherwise.
|
/// - Zero otherwise.
|
||||||
///
|
///
|
||||||
inline bool operator<=(_In_ handle_type h) const
|
inline bool operator<=(_In_opt_ handle_type h) const
|
||||||
{
|
{
|
||||||
return !operator>(h);
|
return !operator>(h);
|
||||||
}
|
}
|
||||||
@ -829,7 +829,7 @@ namespace winstd
|
|||||||
/// - Non zero when object handle is greater than or equal to h;
|
/// - Non zero when object handle is greater than or equal to h;
|
||||||
/// - Zero otherwise.
|
/// - Zero otherwise.
|
||||||
///
|
///
|
||||||
inline bool operator>=(_In_ handle_type h) const
|
inline bool operator>=(_In_opt_ handle_type h) const
|
||||||
{
|
{
|
||||||
return !operator<(h);
|
return !operator<(h);
|
||||||
}
|
}
|
||||||
@ -842,7 +842,7 @@ namespace winstd
|
|||||||
/// - Non zero when object handle is greater than h;
|
/// - Non zero when object handle is greater than h;
|
||||||
/// - Zero otherwise.
|
/// - Zero otherwise.
|
||||||
///
|
///
|
||||||
inline bool operator>(_In_ handle_type h) const
|
inline bool operator>(_In_opt_ handle_type h) const
|
||||||
{
|
{
|
||||||
return h < m_h;
|
return h < m_h;
|
||||||
}
|
}
|
||||||
@ -855,7 +855,7 @@ namespace winstd
|
|||||||
/// - Non zero when object handle is not equal to h;
|
/// - Non zero when object handle is not equal to h;
|
||||||
/// - Zero otherwise.
|
/// - Zero otherwise.
|
||||||
///
|
///
|
||||||
inline bool operator!=(_In_ handle_type h) const
|
inline bool operator!=(_In_opt_ handle_type h) const
|
||||||
{
|
{
|
||||||
return !operator==(h);
|
return !operator==(h);
|
||||||
}
|
}
|
||||||
@ -868,7 +868,7 @@ namespace winstd
|
|||||||
/// - Non zero when object handle is equal to h;
|
/// - Non zero when object handle is equal to h;
|
||||||
/// - Zero otherwise.
|
/// - Zero otherwise.
|
||||||
///
|
///
|
||||||
inline bool operator==(_In_ handle_type h) const
|
inline bool operator==(_In_opt_ handle_type h) const
|
||||||
{
|
{
|
||||||
return m_h == h;
|
return m_h == h;
|
||||||
}
|
}
|
||||||
@ -946,7 +946,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// \param[in] h Initial object handle value
|
/// \param[in] h Initial object handle value
|
||||||
///
|
///
|
||||||
inline dplhandle(_In_ handle_type h) : handle<handle_type, INVAL>(h)
|
inline dplhandle(_In_opt_ handle_type h) : handle<handle_type, INVAL>(h)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -973,7 +973,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// \param[in] h Object handle value
|
/// \param[in] h Object handle value
|
||||||
///
|
///
|
||||||
inline dplhandle<handle_type, INVAL>& operator=(_In_ handle_type h)
|
inline dplhandle<handle_type, INVAL>& operator=(_In_opt_ handle_type h)
|
||||||
{
|
{
|
||||||
handle<handle_type, INVAL>::operator=(h);
|
handle<handle_type, INVAL>::operator=(h);
|
||||||
return *this;
|
return *this;
|
||||||
@ -1036,7 +1036,7 @@ namespace winstd
|
|||||||
/// - true when duplication succeeds;
|
/// - true when duplication succeeds;
|
||||||
/// - false when duplication fails. In case of failure obtaining the extended error information is object type specific (for example: `GetLastError()`).
|
/// - false when duplication fails. In case of failure obtaining the extended error information is object type specific (for example: `GetLastError()`).
|
||||||
///
|
///
|
||||||
inline bool attach_duplicated(_In_ handle_type h)
|
inline bool attach_duplicated(_In_opt_ handle_type h)
|
||||||
{
|
{
|
||||||
if (m_h != invalid)
|
if (m_h != invalid)
|
||||||
free_internal();
|
free_internal();
|
||||||
|
@ -45,63 +45,63 @@ namespace winstd
|
|||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/// @copydoc CertGetNameStringW()
|
/// @copydoc CertGetNameStringW()
|
||||||
template<class _Elem, class _Traits, class _Ax> inline DWORD CertGetNameStringA(_In_ PCCERT_CONTEXT pCertContext, _In_ DWORD dwType, _In_ DWORD dwFlags, _In_ void *pvTypePara, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sNameString);
|
template<class _Elem, class _Traits, class _Ax> inline DWORD CertGetNameStringA(_In_ PCCERT_CONTEXT pCertContext, _In_ DWORD dwType, _In_ DWORD dwFlags, _In_opt_ void *pvTypePara, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sNameString);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Obtains the subject or issuer name from a certificate [CERT_CONTEXT](https://msdn.microsoft.com/en-us/library/windows/desktop/aa377189.aspx) structure and stores it in a std::wstring string.
|
/// Obtains the subject or issuer name from a certificate [CERT_CONTEXT](https://msdn.microsoft.com/en-us/library/windows/desktop/aa377189.aspx) structure and stores it in a std::wstring string.
|
||||||
///
|
///
|
||||||
/// \sa [CertGetNameString function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa376086.aspx)
|
/// \sa [CertGetNameString function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa376086.aspx)
|
||||||
///
|
///
|
||||||
template<class _Elem, class _Traits, class _Ax> inline DWORD CertGetNameStringW(_In_ PCCERT_CONTEXT pCertContext, _In_ DWORD dwType, _In_ DWORD dwFlags, _In_ void *pvTypePara, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sNameString);
|
template<class _Elem, class _Traits, class _Ax> inline DWORD CertGetNameStringW(_In_ PCCERT_CONTEXT pCertContext, _In_ DWORD dwType, _In_ DWORD dwFlags, _In_opt_ void *pvTypePara, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sNameString);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Retrieves the information contained in an extended property of a certificate context.
|
/// Retrieves the information contained in an extended property of a certificate context.
|
||||||
///
|
///
|
||||||
/// \sa [CertGetCertificateContextProperty function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa376079.aspx)
|
/// \sa [CertGetCertificateContextProperty function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa376079.aspx)
|
||||||
///
|
///
|
||||||
template<class _Ty, class _Ax> inline BOOL WINAPI CertGetCertificateContextProperty(_In_ PCCERT_CONTEXT pCertContext, _In_ DWORD dwPropId, _Inout_ std::vector<_Ty, _Ax> &aData);
|
template<class _Ty, class _Ax> inline _Success_(return != 0) BOOL WINAPI CertGetCertificateContextProperty(_In_ PCCERT_CONTEXT pCertContext, _In_ DWORD dwPropId, _Out_ std::vector<_Ty, _Ax> &aData);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Retrieves data that governs the operations of a hash object. The actual hash value can be retrieved by using this function.
|
/// Retrieves data that governs the operations of a hash object. The actual hash value can be retrieved by using this function.
|
||||||
///
|
///
|
||||||
/// \sa [CryptGetHashParam function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa379947.aspx)
|
/// \sa [CryptGetHashParam function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa379947.aspx)
|
||||||
///
|
///
|
||||||
template<class _Ty, class _Ax> inline BOOL CryptGetHashParam(_In_ HCRYPTHASH hHash, _In_ DWORD dwParam, _Inout_ std::vector<_Ty, _Ax> &aData, _In_ DWORD dwFlags);
|
template<class _Ty, class _Ax> inline _Success_(return != 0) BOOL CryptGetHashParam(_In_ HCRYPTHASH hHash, _In_ DWORD dwParam, _Out_ std::vector<_Ty, _Ax> &aData, _In_ DWORD dwFlags);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Retrieves data that governs the operations of a key.
|
/// Retrieves data that governs the operations of a key.
|
||||||
///
|
///
|
||||||
/// \sa [CryptGetKeyParam function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa379949.aspx)
|
/// \sa [CryptGetKeyParam function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa379949.aspx)
|
||||||
///
|
///
|
||||||
template<class _Ty, class _Ax> inline BOOL CryptGetKeyParam(_In_ HCRYPTKEY hKey, _In_ DWORD dwParam, _Inout_ std::vector<_Ty, _Ax> &aData, _In_ DWORD dwFlags);
|
template<class _Ty, class _Ax> inline _Success_(return != 0) BOOL CryptGetKeyParam(_In_ HCRYPTKEY hKey, _In_ DWORD dwParam, _Out_ std::vector<_Ty, _Ax> &aData, _In_ DWORD dwFlags);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Retrieves data that governs the operations of a key.
|
/// Retrieves data that governs the operations of a key.
|
||||||
///
|
///
|
||||||
/// \sa [CryptGetKeyParam function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa379949.aspx)
|
/// \sa [CryptGetKeyParam function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa379949.aspx)
|
||||||
///
|
///
|
||||||
template<class T> inline BOOL CryptGetKeyParam(_In_ HCRYPTKEY hKey, _In_ DWORD dwParam, _Out_ T &data, _In_ DWORD dwFlags);
|
template<class T> inline _Success_(return != 0) BOOL CryptGetKeyParam(_In_ HCRYPTKEY hKey, _In_ DWORD dwParam, _Out_ T &data, _In_ DWORD dwFlags);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Exports a cryptographic key or a key pair from a cryptographic service provider (CSP) in a secure manner.
|
/// Exports a cryptographic key or a key pair from a cryptographic service provider (CSP) in a secure manner.
|
||||||
///
|
///
|
||||||
/// \sa [CryptExportKey function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa379931.aspx)
|
/// \sa [CryptExportKey function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa379931.aspx)
|
||||||
///
|
///
|
||||||
template<class _Ty, class _Ax> inline BOOL CryptExportKey(_In_ HCRYPTKEY hKey, _In_ HCRYPTKEY hExpKey, _In_ DWORD dwBlobType, _In_ DWORD dwFlags, _Inout_ std::vector<_Ty, _Ax> &aData);
|
template<class _Ty, class _Ax> inline _Success_(return != 0) BOOL CryptExportKey(_In_ HCRYPTKEY hKey, _In_ HCRYPTKEY hExpKey, _In_ DWORD dwBlobType, _In_ DWORD dwFlags, _Out_ std::vector<_Ty, _Ax> &aData);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Encrypts data.
|
/// Encrypts data.
|
||||||
///
|
///
|
||||||
/// \sa [CryptEncrypt function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa379924.aspx)
|
/// \sa [CryptEncrypt function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa379924.aspx)
|
||||||
///
|
///
|
||||||
template<class _Ty, class _Ax> inline BOOL CryptEncrypt(_In_ HCRYPTKEY hKey, _In_opt_ HCRYPTHASH hHash, _In_ BOOL Final, _In_ DWORD dwFlags, _Inout_ std::vector<_Ty, _Ax> &aData);
|
template<class _Ty, class _Ax> inline _Success_(return != 0) BOOL CryptEncrypt(_In_ HCRYPTKEY hKey, _In_opt_ HCRYPTHASH hHash, _In_ BOOL Final, _In_ DWORD dwFlags, _Inout_ std::vector<_Ty, _Ax> &aData);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Decrypts data previously encrypted by using the CryptEncrypt function.
|
/// Decrypts data previously encrypted by using the CryptEncrypt function.
|
||||||
///
|
///
|
||||||
/// \sa [CryptDecrypt function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa379913.aspx)
|
/// \sa [CryptDecrypt function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa379913.aspx)
|
||||||
///
|
///
|
||||||
template<class _Ty, class _Ax> inline BOOL CryptDecrypt(_In_ HCRYPTKEY hKey, _In_opt_ HCRYPTHASH hHash, _In_ BOOL Final, _In_ DWORD dwFlags, _Inout_ std::vector<_Ty, _Ax> &aData);
|
template<class _Ty, class _Ax> inline _Success_(return != 0) BOOL CryptDecrypt(_In_ HCRYPTKEY hKey, _In_opt_ HCRYPTHASH hHash, _In_ BOOL Final, _In_ DWORD dwFlags, _Inout_ std::vector<_Ty, _Ax> &aData);
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
@ -621,7 +621,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// Move an existing BLOB.
|
/// Move an existing BLOB.
|
||||||
///
|
///
|
||||||
inline data_blob(_Inout_ DATA_BLOB &&other)
|
inline data_blob(_Inout_ DATA_BLOB &&other) noexcept
|
||||||
{
|
{
|
||||||
cbData = other.cbData;
|
cbData = other.cbData;
|
||||||
pbData = other.pbData;
|
pbData = other.pbData;
|
||||||
@ -657,7 +657,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// Move an existing BLOB.
|
/// Move an existing BLOB.
|
||||||
///
|
///
|
||||||
inline data_blob& operator=(_Inout_ DATA_BLOB &&other)
|
inline data_blob& operator=(_Inout_ DATA_BLOB &&other) noexcept
|
||||||
{
|
{
|
||||||
if (this != &other) {
|
if (this != &other) {
|
||||||
cbData = other.cbData;
|
cbData = other.cbData;
|
||||||
@ -701,7 +701,7 @@ namespace winstd
|
|||||||
|
|
||||||
|
|
||||||
template<class _Elem, class _Traits, class _Ax>
|
template<class _Elem, class _Traits, class _Ax>
|
||||||
inline DWORD CertGetNameStringA(_In_ PCCERT_CONTEXT pCertContext, _In_ DWORD dwType, _In_ DWORD dwFlags, _In_ void *pvTypePara, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sNameString)
|
inline DWORD CertGetNameStringA(_In_ PCCERT_CONTEXT pCertContext, _In_ DWORD dwType, _In_ DWORD dwFlags, _In_opt_ void *pvTypePara, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sNameString)
|
||||||
{
|
{
|
||||||
// Query the final string length first.
|
// Query the final string length first.
|
||||||
DWORD dwSize = ::CertGetNameStringA(pCertContext, dwType, dwFlags, pvTypePara, NULL, 0);
|
DWORD dwSize = ::CertGetNameStringA(pCertContext, dwType, dwFlags, pvTypePara, NULL, 0);
|
||||||
@ -715,7 +715,7 @@ inline DWORD CertGetNameStringA(_In_ PCCERT_CONTEXT pCertContext, _In_ DWORD dwT
|
|||||||
|
|
||||||
|
|
||||||
template<class _Elem, class _Traits, class _Ax>
|
template<class _Elem, class _Traits, class _Ax>
|
||||||
inline DWORD CertGetNameStringW(_In_ PCCERT_CONTEXT pCertContext, _In_ DWORD dwType, _In_ DWORD dwFlags, _In_ void *pvTypePara, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sNameString)
|
inline DWORD CertGetNameStringW(_In_ PCCERT_CONTEXT pCertContext, _In_ DWORD dwType, _In_ DWORD dwFlags, _In_opt_ void *pvTypePara, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sNameString)
|
||||||
{
|
{
|
||||||
// Query the final string length first.
|
// Query the final string length first.
|
||||||
DWORD dwSize = ::CertGetNameStringW(pCertContext, dwType, dwFlags, pvTypePara, NULL, 0);
|
DWORD dwSize = ::CertGetNameStringW(pCertContext, dwType, dwFlags, pvTypePara, NULL, 0);
|
||||||
@ -729,7 +729,7 @@ inline DWORD CertGetNameStringW(_In_ PCCERT_CONTEXT pCertContext, _In_ DWORD dwT
|
|||||||
|
|
||||||
|
|
||||||
template<class _Ty, class _Ax>
|
template<class _Ty, class _Ax>
|
||||||
inline BOOL WINAPI CertGetCertificateContextProperty(_In_ PCCERT_CONTEXT pCertContext, _In_ DWORD dwPropId, _Inout_ std::vector<_Ty, _Ax> &aData)
|
inline _Success_(return != 0) BOOL WINAPI CertGetCertificateContextProperty(_In_ PCCERT_CONTEXT pCertContext, _In_ DWORD dwPropId, _Out_ std::vector<_Ty, _Ax> &aData)
|
||||||
{
|
{
|
||||||
BYTE buf[WINSTD_STACK_BUFFER_BYTES];
|
BYTE buf[WINSTD_STACK_BUFFER_BYTES];
|
||||||
DWORD dwSize = WINSTD_STACK_BUFFER_BYTES;
|
DWORD dwSize = WINSTD_STACK_BUFFER_BYTES;
|
||||||
@ -750,7 +750,7 @@ inline BOOL WINAPI CertGetCertificateContextProperty(_In_ PCCERT_CONTEXT pCertCo
|
|||||||
|
|
||||||
|
|
||||||
template<class _Ty, class _Ax>
|
template<class _Ty, class _Ax>
|
||||||
inline BOOL CryptGetHashParam(_In_ HCRYPTHASH hHash, _In_ DWORD dwParam, _Inout_ std::vector<_Ty, _Ax> &aData, _In_ DWORD dwFlags)
|
inline _Success_(return != 0) BOOL CryptGetHashParam(_In_ HCRYPTHASH hHash, _In_ DWORD dwParam, _Out_ std::vector<_Ty, _Ax> &aData, _In_ DWORD dwFlags)
|
||||||
{
|
{
|
||||||
BYTE buf[WINSTD_STACK_BUFFER_BYTES];
|
BYTE buf[WINSTD_STACK_BUFFER_BYTES];
|
||||||
DWORD dwSize = WINSTD_STACK_BUFFER_BYTES;
|
DWORD dwSize = WINSTD_STACK_BUFFER_BYTES;
|
||||||
@ -779,7 +779,7 @@ inline BOOL CryptGetHashParam(_In_ HCRYPTHASH hHash, _In_ DWORD dwParam, _Out_ T
|
|||||||
|
|
||||||
|
|
||||||
template<class _Ty, class _Ax>
|
template<class _Ty, class _Ax>
|
||||||
inline BOOL CryptGetKeyParam(_In_ HCRYPTKEY hKey, _In_ DWORD dwParam, _Inout_ std::vector<_Ty, _Ax> &aData, _In_ DWORD dwFlags)
|
inline _Success_(return != 0) BOOL CryptGetKeyParam(_In_ HCRYPTKEY hKey, _In_ DWORD dwParam, _Out_ std::vector<_Ty, _Ax> &aData, _In_ DWORD dwFlags)
|
||||||
{
|
{
|
||||||
BYTE buf[WINSTD_STACK_BUFFER_BYTES];
|
BYTE buf[WINSTD_STACK_BUFFER_BYTES];
|
||||||
DWORD dwSize = WINSTD_STACK_BUFFER_BYTES;
|
DWORD dwSize = WINSTD_STACK_BUFFER_BYTES;
|
||||||
@ -808,7 +808,7 @@ inline BOOL CryptGetKeyParam(_In_ HCRYPTKEY hKey, _In_ DWORD dwParam, _Out_ T &d
|
|||||||
|
|
||||||
|
|
||||||
template<class _Ty, class _Ax>
|
template<class _Ty, class _Ax>
|
||||||
inline BOOL CryptExportKey(_In_ HCRYPTKEY hKey, _In_ HCRYPTKEY hExpKey, _In_ DWORD dwBlobType, _In_ DWORD dwFlags, _Inout_ std::vector<_Ty, _Ax> &aData)
|
inline _Success_(return != 0) BOOL CryptExportKey(_In_ HCRYPTKEY hKey, _In_ HCRYPTKEY hExpKey, _In_ DWORD dwBlobType, _In_ DWORD dwFlags, _Out_ std::vector<_Ty, _Ax> &aData)
|
||||||
{
|
{
|
||||||
DWORD dwKeyBLOBSize = 0;
|
DWORD dwKeyBLOBSize = 0;
|
||||||
|
|
||||||
@ -823,7 +823,7 @@ inline BOOL CryptExportKey(_In_ HCRYPTKEY hKey, _In_ HCRYPTKEY hExpKey, _In_ DWO
|
|||||||
|
|
||||||
|
|
||||||
template<class _Ty, class _Ax>
|
template<class _Ty, class _Ax>
|
||||||
inline BOOL CryptEncrypt(_In_ HCRYPTKEY hKey, _In_opt_ HCRYPTHASH hHash, _In_ BOOL Final, _In_ DWORD dwFlags, _Inout_ std::vector<_Ty, _Ax> &aData)
|
inline _Success_(return != 0) BOOL CryptEncrypt(_In_ HCRYPTKEY hKey, _In_opt_ HCRYPTHASH hHash, _In_ BOOL Final, _In_ DWORD dwFlags, _Inout_ std::vector<_Ty, _Ax> &aData)
|
||||||
{
|
{
|
||||||
DWORD
|
DWORD
|
||||||
dwDataLen = (DWORD)(aData.size() * sizeof(_Ty)),
|
dwDataLen = (DWORD)(aData.size() * sizeof(_Ty)),
|
||||||
@ -869,7 +869,7 @@ inline BOOL CryptEncrypt(_In_ HCRYPTKEY hKey, _In_opt_ HCRYPTHASH hHash, _In_ BO
|
|||||||
|
|
||||||
|
|
||||||
template<class _Ty, class _Ax>
|
template<class _Ty, class _Ax>
|
||||||
inline BOOL CryptDecrypt(_In_ HCRYPTKEY hKey, _In_opt_ HCRYPTHASH hHash, _In_ BOOL Final, _In_ DWORD dwFlags, _Inout_ std::vector<_Ty, _Ax> &aData)
|
inline _Success_(return != 0) BOOL CryptDecrypt(_In_ HCRYPTKEY hKey, _In_opt_ HCRYPTHASH hHash, _In_ BOOL Final, _In_ DWORD dwFlags, _Inout_ std::vector<_Ty, _Ax> &aData)
|
||||||
{
|
{
|
||||||
DWORD dwDataLen = (DWORD)(aData.size() * sizeof(_Ty));
|
DWORD dwDataLen = (DWORD)(aData.size() * sizeof(_Ty));
|
||||||
|
|
||||||
|
@ -55,21 +55,21 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// \sa [TdhGetEventInformation function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa964840.aspx)
|
/// \sa [TdhGetEventInformation function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa964840.aspx)
|
||||||
///
|
///
|
||||||
inline ULONG TdhGetEventInformation(_In_ PEVENT_RECORD pEvent, _In_ ULONG TdhContextCount, _In_ PTDH_CONTEXT pTdhContext, _Inout_ std::unique_ptr<TRACE_EVENT_INFO> &info);
|
inline _Success_(return == ERROR_SUCCESS) ULONG TdhGetEventInformation(_In_ PEVENT_RECORD pEvent, _In_ ULONG TdhContextCount, _In_reads_opt_(TdhContextCount) PTDH_CONTEXT pTdhContext, _Out_ std::unique_ptr<TRACE_EVENT_INFO> &info);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Retrieves information about the event map contained in the event.
|
/// Retrieves information about the event map contained in the event.
|
||||||
///
|
///
|
||||||
/// \sa [TdhGetEventMapInformation function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa964841.aspx)
|
/// \sa [TdhGetEventMapInformation function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa964841.aspx)
|
||||||
///
|
///
|
||||||
inline ULONG TdhGetEventMapInformation(_In_ PEVENT_RECORD pEvent, _In_ LPWSTR pMapName, _Inout_ std::unique_ptr<EVENT_MAP_INFO> &info);
|
inline _Success_(return == ERROR_SUCCESS) ULONG TdhGetEventMapInformation(_In_ PEVENT_RECORD pEvent, _In_ LPWSTR pMapName, _Inout_ std::unique_ptr<EVENT_MAP_INFO> &info);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Retrieves a property value from the event data.
|
/// Retrieves a property value from the event data.
|
||||||
///
|
///
|
||||||
/// \sa [TdhGetProperty function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa964843.aspx)
|
/// \sa [TdhGetProperty function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa964843.aspx)
|
||||||
///
|
///
|
||||||
template<class _Ty, class _Ax> inline ULONG TdhGetProperty(_In_ PEVENT_RECORD pEvent, _In_ ULONG TdhContextCount, _In_ PTDH_CONTEXT pTdhContext, _In_ ULONG PropertyDataCount, _In_ PPROPERTY_DATA_DESCRIPTOR pPropertyData, _Inout_ std::vector<_Ty, _Ax> &aData);
|
template<class _Ty, class _Ax> inline _Success_(return == ERROR_SUCCESS) ULONG TdhGetProperty(_In_ PEVENT_RECORD pEvent, _In_ ULONG TdhContextCount, _In_reads_opt_(TdhContextCount) PTDH_CONTEXT pTdhContext, _In_ ULONG PropertyDataCount, _In_reads_(PropertyDataCount) PPROPERTY_DATA_DESCRIPTOR pPropertyData, _Inout_ std::vector<_Ty, _Ax> &aData);
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
@ -105,6 +105,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// \note This class saves a reference to the data only. Therefore, data must be kept available.
|
/// \note This class saves a reference to the data only. Therefore, data must be kept available.
|
||||||
///
|
///
|
||||||
|
#pragma warning(suppress: 26495) // EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR
|
||||||
inline event_data(_In_ const int &data)
|
inline event_data(_In_ const int &data)
|
||||||
{
|
{
|
||||||
EventDataDescCreate(this, &data, (ULONG)(sizeof(data)));
|
EventDataDescCreate(this, &data, (ULONG)(sizeof(data)));
|
||||||
@ -118,6 +119,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// \note This class saves a reference to the data only. Therefore, data must be kept available.
|
/// \note This class saves a reference to the data only. Therefore, data must be kept available.
|
||||||
///
|
///
|
||||||
|
#pragma warning(suppress: 26495) // EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR
|
||||||
inline event_data(_In_ const unsigned int &data)
|
inline event_data(_In_ const unsigned int &data)
|
||||||
{
|
{
|
||||||
EventDataDescCreate(this, &data, (ULONG)(sizeof(data)));
|
EventDataDescCreate(this, &data, (ULONG)(sizeof(data)));
|
||||||
@ -131,6 +133,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// \note This class saves a reference to the data only. Therefore, data must be kept available.
|
/// \note This class saves a reference to the data only. Therefore, data must be kept available.
|
||||||
///
|
///
|
||||||
|
#pragma warning(suppress: 26495) // EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR
|
||||||
inline event_data(_In_ const long &data)
|
inline event_data(_In_ const long &data)
|
||||||
{
|
{
|
||||||
EventDataDescCreate(this, &data, (ULONG)(sizeof(data)));
|
EventDataDescCreate(this, &data, (ULONG)(sizeof(data)));
|
||||||
@ -144,6 +147,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// \note This class saves a reference to the data only. Therefore, data must be kept available.
|
/// \note This class saves a reference to the data only. Therefore, data must be kept available.
|
||||||
///
|
///
|
||||||
|
#pragma warning(suppress: 26495) // EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR
|
||||||
inline event_data(_In_ const unsigned long &data)
|
inline event_data(_In_ const unsigned long &data)
|
||||||
{
|
{
|
||||||
EventDataDescCreate(this, &data, (ULONG)(sizeof(data)));
|
EventDataDescCreate(this, &data, (ULONG)(sizeof(data)));
|
||||||
@ -157,6 +161,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// \note This class saves a reference to the data only. Therefore, data must be kept available.
|
/// \note This class saves a reference to the data only. Therefore, data must be kept available.
|
||||||
///
|
///
|
||||||
|
#pragma warning(suppress: 26495) // EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR
|
||||||
inline event_data(_In_ const GUID &data)
|
inline event_data(_In_ const GUID &data)
|
||||||
{
|
{
|
||||||
EventDataDescCreate(this, &data, (ULONG)(sizeof(data)));
|
EventDataDescCreate(this, &data, (ULONG)(sizeof(data)));
|
||||||
@ -170,7 +175,8 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// \note This class saves a reference to the data only. Therefore, data must be kept available.
|
/// \note This class saves a reference to the data only. Therefore, data must be kept available.
|
||||||
///
|
///
|
||||||
inline event_data(_In_ const char *data)
|
#pragma warning(suppress: 26495) // EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR
|
||||||
|
inline event_data(_In_opt_z_ const char *data)
|
||||||
{
|
{
|
||||||
if (data)
|
if (data)
|
||||||
EventDataDescCreate(this, data, (ULONG)((strlen(data) + 1) * sizeof(*data)));
|
EventDataDescCreate(this, data, (ULONG)((strlen(data) + 1) * sizeof(*data)));
|
||||||
@ -189,7 +195,8 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// \note This class saves a reference to the data only. Therefore, data must be kept available.
|
/// \note This class saves a reference to the data only. Therefore, data must be kept available.
|
||||||
///
|
///
|
||||||
inline event_data(_In_ const wchar_t *data)
|
#pragma warning(suppress: 26495) // EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR
|
||||||
|
inline event_data(_In_opt_z_ const wchar_t *data)
|
||||||
{
|
{
|
||||||
if (data)
|
if (data)
|
||||||
EventDataDescCreate(this, data, (ULONG)((wcslen(data) + 1) * sizeof(*data)));
|
EventDataDescCreate(this, data, (ULONG)((wcslen(data) + 1) * sizeof(*data)));
|
||||||
@ -208,6 +215,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// \note This class saves a reference to the data only. Therefore, data must be kept available.
|
/// \note This class saves a reference to the data only. Therefore, data must be kept available.
|
||||||
///
|
///
|
||||||
|
#pragma warning(suppress: 26495) // EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR
|
||||||
template<class _Elem, class _Traits, class _Ax>
|
template<class _Elem, class _Traits, class _Ax>
|
||||||
inline event_data(_In_ const std::basic_string<_Elem, _Traits, _Ax> &data)
|
inline event_data(_In_ const std::basic_string<_Elem, _Traits, _Ax> &data)
|
||||||
{
|
{
|
||||||
@ -223,6 +231,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// \note This class saves a reference to the data only. Therefore, data must be kept available.
|
/// \note This class saves a reference to the data only. Therefore, data must be kept available.
|
||||||
///
|
///
|
||||||
|
#pragma warning(suppress: 26495) // EventDataDescCreate() initializes all members of EVENT_DATA_DESCRIPTOR
|
||||||
inline event_data(_In_bytecount_(size) const void *data, _In_ ULONG size)
|
inline event_data(_In_bytecount_(size) const void *data, _In_ ULONG size)
|
||||||
{
|
{
|
||||||
EventDataDescCreate(this, data, size);
|
EventDataDescCreate(this, data, size);
|
||||||
@ -1130,7 +1139,7 @@ namespace winstd
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline ULONG TdhGetEventInformation(_In_ PEVENT_RECORD pEvent, _In_ ULONG TdhContextCount, _In_ PTDH_CONTEXT pTdhContext, _Inout_ std::unique_ptr<TRACE_EVENT_INFO> &info)
|
inline _Success_(return == ERROR_SUCCESS) ULONG TdhGetEventInformation(_In_ PEVENT_RECORD pEvent, _In_ ULONG TdhContextCount, _In_reads_opt_(TdhContextCount) PTDH_CONTEXT pTdhContext, _Out_ std::unique_ptr<TRACE_EVENT_INFO> &info)
|
||||||
{
|
{
|
||||||
BYTE szBuffer[WINSTD_STACK_BUFFER_BYTES];
|
BYTE szBuffer[WINSTD_STACK_BUFFER_BYTES];
|
||||||
ULONG ulSize = sizeof(szBuffer), ulResult;
|
ULONG ulSize = sizeof(szBuffer), ulResult;
|
||||||
@ -1152,7 +1161,7 @@ inline ULONG TdhGetEventInformation(_In_ PEVENT_RECORD pEvent, _In_ ULONG TdhCon
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline ULONG TdhGetEventMapInformation(_In_ PEVENT_RECORD pEvent, _In_ LPWSTR pMapName, _Inout_ std::unique_ptr<EVENT_MAP_INFO> &info)
|
inline _Success_(return == ERROR_SUCCESS) ULONG TdhGetEventMapInformation(_In_ PEVENT_RECORD pEvent, _In_ LPWSTR pMapName, _Inout_ std::unique_ptr<EVENT_MAP_INFO> &info)
|
||||||
{
|
{
|
||||||
BYTE szBuffer[WINSTD_STACK_BUFFER_BYTES];
|
BYTE szBuffer[WINSTD_STACK_BUFFER_BYTES];
|
||||||
ULONG ulSize = sizeof(szBuffer), ulResult;
|
ULONG ulSize = sizeof(szBuffer), ulResult;
|
||||||
@ -1175,7 +1184,7 @@ inline ULONG TdhGetEventMapInformation(_In_ PEVENT_RECORD pEvent, _In_ LPWSTR pM
|
|||||||
|
|
||||||
|
|
||||||
template<class _Ty, class _Ax>
|
template<class _Ty, class _Ax>
|
||||||
inline ULONG TdhGetProperty(_In_ PEVENT_RECORD pEvent, _In_ ULONG TdhContextCount, _In_ PTDH_CONTEXT pTdhContext, _In_ ULONG PropertyDataCount, _In_ PPROPERTY_DATA_DESCRIPTOR pPropertyData, _Inout_ std::vector<_Ty, _Ax> &aData)
|
inline _Success_(return == ERROR_SUCCESS) ULONG TdhGetProperty(_In_ PEVENT_RECORD pEvent, _In_ ULONG TdhContextCount, _In_reads_opt_(TdhContextCount) PTDH_CONTEXT pTdhContext, _In_ ULONG PropertyDataCount, _In_reads_(PropertyDataCount) PPROPERTY_DATA_DESCRIPTOR pPropertyData, _Inout_ std::vector<_Ty, _Ax> &aData)
|
||||||
{
|
{
|
||||||
ULONG ulSize, ulResult;
|
ULONG ulSize, ulResult;
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// \param[inout] h A rvalue reference of another object
|
/// \param[inout] h A rvalue reference of another object
|
||||||
///
|
///
|
||||||
inline sec_credentials(_Inout_ sec_credentials &&h) :
|
inline sec_credentials(_Inout_ sec_credentials &&h) noexcept :
|
||||||
m_expires(std::move(h.m_expires)),
|
m_expires(std::move(h.m_expires)),
|
||||||
handle<PCredHandle, NULL>(std::move(h))
|
handle<PCredHandle, NULL>(std::move(h))
|
||||||
{
|
{
|
||||||
@ -111,7 +111,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// \param[inout] h A rvalue reference of another object
|
/// \param[inout] h A rvalue reference of another object
|
||||||
///
|
///
|
||||||
sec_credentials& operator=(_Inout_ sec_credentials &&h)
|
sec_credentials& operator=(_Inout_ sec_credentials &&h) noexcept
|
||||||
{
|
{
|
||||||
if (this != std::addressof(h)) {
|
if (this != std::addressof(h)) {
|
||||||
*(handle<handle_type, NULL>*)this = std::move(h);
|
*(handle<handle_type, NULL>*)this = std::move(h);
|
||||||
@ -183,7 +183,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// \param[inout] h A rvalue reference of another object
|
/// \param[inout] h A rvalue reference of another object
|
||||||
///
|
///
|
||||||
inline sec_context(_Inout_ sec_context &&h) :
|
inline sec_context(_Inout_ sec_context &&h) noexcept :
|
||||||
m_attrib (std::move(h.m_attrib )),
|
m_attrib (std::move(h.m_attrib )),
|
||||||
m_expires(std::move(h.m_expires)),
|
m_expires(std::move(h.m_expires)),
|
||||||
handle<PCtxtHandle, NULL>(std::move(h))
|
handle<PCtxtHandle, NULL>(std::move(h))
|
||||||
@ -202,7 +202,7 @@ namespace winstd
|
|||||||
///
|
///
|
||||||
/// \param[inout] h A rvalue reference of another object
|
/// \param[inout] h A rvalue reference of another object
|
||||||
///
|
///
|
||||||
sec_context& operator=(_Inout_ sec_context &&h)
|
sec_context& operator=(_Inout_ sec_context &&h) noexcept
|
||||||
{
|
{
|
||||||
if (this != std::addressof(h)) {
|
if (this != std::addressof(h)) {
|
||||||
*(handle<handle_type, NULL>*)this = std::move(h);
|
*(handle<handle_type, NULL>*)this = std::move(h);
|
||||||
@ -230,6 +230,8 @@ namespace winstd
|
|||||||
_Inout_opt_ PSecBufferDesc pOutput)
|
_Inout_opt_ PSecBufferDesc pOutput)
|
||||||
{
|
{
|
||||||
handle_type h = new CtxtHandle;
|
handle_type h = new CtxtHandle;
|
||||||
|
h->dwUpper = 0;
|
||||||
|
h->dwLower = 0;
|
||||||
ULONG attr;
|
ULONG attr;
|
||||||
TimeStamp exp;
|
TimeStamp exp;
|
||||||
SECURITY_STATUS res = InitializeSecurityContext(phCredential, NULL, const_cast<LPTSTR>(pszTargetName), fContextReq, 0, TargetDataRep, pInput, 0, h, pOutput, &attr, &exp);
|
SECURITY_STATUS res = InitializeSecurityContext(phCredential, NULL, const_cast<LPTSTR>(pszTargetName), fContextReq, 0, TargetDataRep, pInput, 0, h, pOutput, &attr, &exp);
|
||||||
|
@ -181,7 +181,8 @@ inline DWORD WlanReasonCodeToString(_In_ DWORD dwReasonCode, _Inout_ std::basic_
|
|||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
// Increment size and allocate buffer.
|
// Increment size and allocate buffer.
|
||||||
std::unique_ptr<_Elem[]> szBuffer(new _Elem[dwSize += 1024]);
|
dwSize += 1024;
|
||||||
|
std::unique_ptr<_Elem[]> szBuffer(new _Elem[dwSize]);
|
||||||
|
|
||||||
// Try!
|
// Try!
|
||||||
DWORD dwResult = ::pfnWlanReasonCodeToString(dwReasonCode, dwSize, szBuffer.get(), pReserved);
|
DWORD dwResult = ::pfnWlanReasonCodeToString(dwReasonCode, dwSize, szBuffer.get(), pReserved);
|
||||||
|
@ -54,47 +54,47 @@ namespace winstd
|
|||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/// @copydoc GetModuleFileNameW()
|
/// @copydoc GetModuleFileNameW()
|
||||||
template<class _Elem, class _Traits, class _Ax> inline DWORD GetModuleFileNameA(_In_opt_ HMODULE hModule, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sValue);
|
template<class _Elem, class _Traits, class _Ax> inline DWORD GetModuleFileNameA(_In_opt_ HMODULE hModule, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sValue);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Retrieves the fully qualified path for the file that contains the specified module and stores it in a std::wstring string.
|
/// Retrieves the fully qualified path for the file that contains the specified module and stores it in a std::wstring string.
|
||||||
///
|
///
|
||||||
/// \sa [GetModuleFileName function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms683197.aspx)
|
/// \sa [GetModuleFileName function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms683197.aspx)
|
||||||
///
|
///
|
||||||
template<class _Elem, class _Traits, class _Ax> inline DWORD GetModuleFileNameW(_In_opt_ HMODULE hModule, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sValue);
|
template<class _Elem, class _Traits, class _Ax> inline DWORD GetModuleFileNameW(_In_opt_ HMODULE hModule, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sValue);
|
||||||
|
|
||||||
/// @copydoc GetWindowTextW()
|
/// @copydoc GetWindowTextW()
|
||||||
template<class _Elem, class _Traits, class _Ax> inline int GetWindowTextA(_In_ HWND hWnd, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sValue);
|
template<class _Elem, class _Traits, class _Ax> inline _Success_(return != 0) int GetWindowTextA(_In_ HWND hWnd, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sValue);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Copies the text of the specified window's title bar (if it has one) into a std::wstring string.
|
/// Copies the text of the specified window's title bar (if it has one) into a std::wstring string.
|
||||||
///
|
///
|
||||||
/// \sa [GetWindowText function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms633520.aspx)
|
/// \sa [GetWindowText function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms633520.aspx)
|
||||||
///
|
///
|
||||||
template<class _Elem, class _Traits, class _Ax> inline int GetWindowTextW(_In_ HWND hWnd, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sValue);
|
template<class _Elem, class _Traits, class _Ax> inline _Success_(return != 0) int GetWindowTextW(_In_ HWND hWnd, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sValue);
|
||||||
|
|
||||||
/// @copydoc GetFileVersionInfoW()
|
/// @copydoc GetFileVersionInfoW()
|
||||||
template<class _Ty, class _Ax> inline BOOL GetFileVersionInfoA(_In_z_ LPCSTR lptstrFilename, __reserved DWORD dwHandle, _Inout_ std::vector<_Ty, _Ax> &aValue);
|
template<class _Ty, class _Ax> inline _Success_(return != 0) BOOL GetFileVersionInfoA(_In_z_ LPCSTR lptstrFilename, __reserved DWORD dwHandle, _Out_ std::vector<_Ty, _Ax> &aValue);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Retrieves version information for the specified file and stores it in a std::vector buffer.
|
/// Retrieves version information for the specified file and stores it in a std::vector buffer.
|
||||||
///
|
///
|
||||||
/// \sa [GetFileVersionInfo function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms647003.aspx)
|
/// \sa [GetFileVersionInfo function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms647003.aspx)
|
||||||
///
|
///
|
||||||
template<class _Ty, class _Ax> inline BOOL GetFileVersionInfoW(_In_z_ LPCWSTR lptstrFilename, __reserved DWORD dwHandle, _Inout_ std::vector<_Ty, _Ax> &aValue);
|
template<class _Ty, class _Ax> inline _Success_(return != 0) BOOL GetFileVersionInfoW(_In_z_ LPCWSTR lptstrFilename, __reserved DWORD dwHandle, _Out_ std::vector<_Ty, _Ax> &aValue);
|
||||||
|
|
||||||
/// @copydoc ExpandEnvironmentStringsW()
|
/// @copydoc ExpandEnvironmentStringsW()
|
||||||
template<class _Elem, class _Traits, class _Ax> inline DWORD ExpandEnvironmentStringsA(_In_z_ LPCSTR lpSrc, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sValue);
|
template<class _Elem, class _Traits, class _Ax> inline _Success_(return != 0) DWORD ExpandEnvironmentStringsA(_In_z_ LPCSTR lpSrc, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sValue);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Expands environment-variable strings, replaces them with the values defined for the current user, and stores it in a std::wstring string.
|
/// Expands environment-variable strings, replaces them with the values defined for the current user, and stores it in a std::wstring string.
|
||||||
///
|
///
|
||||||
/// \sa [ExpandEnvironmentStrings function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms724265.aspx)
|
/// \sa [ExpandEnvironmentStrings function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms724265.aspx)
|
||||||
///
|
///
|
||||||
template<class _Elem, class _Traits, class _Ax> inline DWORD ExpandEnvironmentStringsW(_In_z_ LPCWSTR lpSrc, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sValue);
|
template<class _Elem, class _Traits, class _Ax> inline _Success_(return != 0) DWORD ExpandEnvironmentStringsW(_In_z_ LPCWSTR lpSrc, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sValue);
|
||||||
|
|
||||||
/// @copydoc GuidToStringW()
|
/// @copydoc GuidToStringW()
|
||||||
template<class _Elem, class _Traits, class _Ax> inline VOID GuidToStringA(_In_ LPCGUID lpGuid, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &str);
|
template<class _Elem, class _Traits, class _Ax> inline VOID GuidToStringA(_In_ LPCGUID lpGuid, _Out_ std::basic_string<_Elem, _Traits, _Ax> &str);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Formats GUID and stores it in a std::wstring string.
|
/// Formats GUID and stores it in a std::wstring string.
|
||||||
@ -102,7 +102,7 @@ template<class _Elem, class _Traits, class _Ax> inline VOID GuidToStringA(_In_ L
|
|||||||
/// \param[in ] lpGuid Pointer to GUID
|
/// \param[in ] lpGuid Pointer to GUID
|
||||||
/// \param[out] str String to store the result to
|
/// \param[out] str String to store the result to
|
||||||
///
|
///
|
||||||
template<class _Elem, class _Traits, class _Ax> inline VOID GuidToStringW(_In_ LPCGUID lpGuid, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &str);
|
template<class _Elem, class _Traits, class _Ax> inline VOID GuidToStringW(_In_ LPCGUID lpGuid, _Out_ std::basic_string<_Elem, _Traits, _Ax> &str);
|
||||||
/// @copydoc GuidToStringW()
|
/// @copydoc GuidToStringW()
|
||||||
#ifdef _UNICODE
|
#ifdef _UNICODE
|
||||||
#define GuidToString GuidToStringW
|
#define GuidToString GuidToStringW
|
||||||
@ -150,7 +150,7 @@ _Success_(return) BOOL WINSTD_API StringToGuidW(_In_z_ LPCWSTR lpszGuid, _Out_ L
|
|||||||
/// \sa [RegQueryValueEx function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms724911.aspx)
|
/// \sa [RegQueryValueEx function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms724911.aspx)
|
||||||
/// \sa [ExpandEnvironmentStrings function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms724265.aspx)
|
/// \sa [ExpandEnvironmentStrings function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms724265.aspx)
|
||||||
///
|
///
|
||||||
template<class _Elem, class _Traits, class _Ax> inline LSTATUS RegQueryStringValue(_In_ HKEY hReg, _In_z_ LPCSTR pszName, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sValue);
|
template<class _Elem, class _Traits, class _Ax> inline LSTATUS RegQueryStringValue(_In_ HKEY hReg, _In_z_ LPCSTR pszName, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sValue);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Queries for a string value in the registry and stores it in a std::wstring string.
|
/// Queries for a string value in the registry and stores it in a std::wstring string.
|
||||||
@ -170,29 +170,29 @@ template<class _Elem, class _Traits, class _Ax> inline LSTATUS RegQueryStringVal
|
|||||||
/// \sa [RegQueryValueEx function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms724911.aspx)
|
/// \sa [RegQueryValueEx function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms724911.aspx)
|
||||||
/// \sa [ExpandEnvironmentStrings function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms724265.aspx)
|
/// \sa [ExpandEnvironmentStrings function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms724265.aspx)
|
||||||
///
|
///
|
||||||
template<class _Elem, class _Traits, class _Ax> inline LSTATUS RegQueryStringValue(_In_ HKEY hReg, _In_z_ LPCWSTR pszName, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sValue);
|
template<class _Elem, class _Traits, class _Ax> inline LSTATUS RegQueryStringValue(_In_ HKEY hReg, _In_z_ LPCWSTR pszName, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sValue);
|
||||||
|
|
||||||
/// @copydoc RegQueryValueExW()
|
/// @copydoc RegQueryValueExW()
|
||||||
template<class _Ty, class _Ax> inline LSTATUS RegQueryValueExA(_In_ HKEY hKey, _In_opt_z_ LPCSTR lpValueName, __reserved LPDWORD lpReserved, _Out_opt_ LPDWORD lpType, _Inout_ std::vector<_Ty, _Ax> &aData);
|
template<class _Ty, class _Ax> inline LSTATUS RegQueryValueExA(_In_ HKEY hKey, _In_opt_z_ LPCSTR lpValueName, __reserved LPDWORD lpReserved, _Out_opt_ LPDWORD lpType, _Out_ std::vector<_Ty, _Ax> &aData);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Retrieves the type and data for the specified value name associated with an open registry key and stores the data in a std::vector buffer.
|
/// Retrieves the type and data for the specified value name associated with an open registry key and stores the data in a std::vector buffer.
|
||||||
///
|
///
|
||||||
/// \sa [RegQueryValueEx function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms724911.aspx)
|
/// \sa [RegQueryValueEx function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms724911.aspx)
|
||||||
///
|
///
|
||||||
template<class _Ty, class _Ax> inline LSTATUS RegQueryValueExW(_In_ HKEY hKey, _In_opt_z_ LPCWSTR lpValueName, __reserved LPDWORD lpReserved, _Out_opt_ LPDWORD lpType, _Inout_ std::vector<_Ty, _Ax> &aData);
|
template<class _Ty, class _Ax> inline LSTATUS RegQueryValueExW(_In_ HKEY hKey, _In_opt_z_ LPCWSTR lpValueName, __reserved LPDWORD lpReserved, _Out_opt_ LPDWORD lpType, _Out_ std::vector<_Ty, _Ax> &aData);
|
||||||
|
|
||||||
#if _WIN32_WINNT >= _WIN32_WINNT_VISTA
|
#if _WIN32_WINNT >= _WIN32_WINNT_VISTA
|
||||||
|
|
||||||
/// @copydoc RegLoadMUIStringW()
|
/// @copydoc RegLoadMUIStringW()
|
||||||
template<class _Elem, class _Traits, class _Ax> inline LSTATUS RegLoadMUIStringA(_In_ HKEY hKey, _In_opt_z_ LPCSTR pszValue, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sOut, _In_ DWORD Flags, _In_opt_z_ LPCSTR pszDirectory);
|
template<class _Elem, class _Traits, class _Ax> inline LSTATUS RegLoadMUIStringA(_In_ HKEY hKey, _In_opt_z_ LPCSTR pszValue, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sOut, _In_ DWORD Flags, _In_opt_z_ LPCSTR pszDirectory);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Loads the specified string from the specified key and subkey, and stores it in a std::wstring string.
|
/// Loads the specified string from the specified key and subkey, and stores it in a std::wstring string.
|
||||||
///
|
///
|
||||||
/// \sa [RegLoadMUIString function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms724890.aspx)
|
/// \sa [RegLoadMUIString function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms724890.aspx)
|
||||||
///
|
///
|
||||||
template<class _Elem, class _Traits, class _Ax> inline LSTATUS RegLoadMUIStringW(_In_ HKEY hKey, _In_opt_z_ LPCWSTR pszValue, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sOut, _In_ DWORD Flags, _In_opt_z_ LPCWSTR pszDirectory);
|
template<class _Elem, class _Traits, class _Ax> inline LSTATUS RegLoadMUIStringW(_In_ HKEY hKey, _In_opt_z_ LPCWSTR pszValue, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sOut, _In_ DWORD Flags, _In_opt_z_ LPCWSTR pszDirectory);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -201,21 +201,21 @@ template<class _Elem, class _Traits, class _Ax> inline LSTATUS RegLoadMUIStringW
|
|||||||
///
|
///
|
||||||
/// \sa [WideCharToMultiByte function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd374130.aspx)
|
/// \sa [WideCharToMultiByte function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd374130.aspx)
|
||||||
///
|
///
|
||||||
template<class _Traits, class _Ax> inline int WideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cchWideChar) LPCWSTR lpWideCharStr, _In_ int cchWideChar, _Inout_ std::basic_string<char, _Traits, _Ax> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar);
|
template<class _Traits, class _Ax> inline _Success_(return != 0) int WideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cchWideChar) LPCWSTR lpWideCharStr, _In_ int cchWideChar, _Out_ std::basic_string<char, _Traits, _Ax> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Maps a UTF-16 (wide character) string to a std::vector. The new character vector is not necessarily from a multibyte character set.
|
/// Maps a UTF-16 (wide character) string to a std::vector. The new character vector is not necessarily from a multibyte character set.
|
||||||
///
|
///
|
||||||
/// \sa [WideCharToMultiByte function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd374130.aspx)
|
/// \sa [WideCharToMultiByte function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd374130.aspx)
|
||||||
///
|
///
|
||||||
template<class _Ax> inline int WideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cchWideChar) LPCWSTR lpWideCharStr, _In_ int cchWideChar, _Inout_ std::vector<char, _Ax> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar);
|
template<class _Ax> inline _Success_(return != 0) int WideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cchWideChar) LPCWSTR lpWideCharStr, _In_ int cchWideChar, _Out_ std::vector<char, _Ax> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Maps a UTF-16 (wide character) string to a std::string. The new character string is not necessarily from a multibyte character set.
|
/// Maps a UTF-16 (wide character) string to a std::string. The new character string is not necessarily from a multibyte character set.
|
||||||
///
|
///
|
||||||
/// \sa [WideCharToMultiByte function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd374130.aspx)
|
/// \sa [WideCharToMultiByte function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd374130.aspx)
|
||||||
///
|
///
|
||||||
template<class _Traits1, class _Ax1, class _Traits2, class _Ax2> inline int WideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _Inout_ std::basic_string<wchar_t, _Traits1, _Ax1> sWideCharStr, _Out_ std::basic_string<char, _Traits2, _Ax2> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar);
|
template<class _Traits1, class _Ax1, class _Traits2, class _Ax2> inline _Success_(return != 0) int WideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _Out_ std::basic_string<wchar_t, _Traits1, _Ax1> sWideCharStr, _Out_ std::basic_string<char, _Traits2, _Ax2> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Maps a UTF-16 (wide character) string to a std::string. The new character string is not necessarily from a multibyte character set.
|
/// Maps a UTF-16 (wide character) string to a std::string. The new character string is not necessarily from a multibyte character set.
|
||||||
@ -224,7 +224,7 @@ template<class _Traits1, class _Ax1, class _Traits2, class _Ax2> inline int Wide
|
|||||||
///
|
///
|
||||||
/// \sa [WideCharToMultiByte function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd374130.aspx)
|
/// \sa [WideCharToMultiByte function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd374130.aspx)
|
||||||
///
|
///
|
||||||
template<class _Traits, class _Ax> inline int SecureWideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cchWideChar) LPCWSTR lpWideCharStr, _In_ int cchWideChar, _Inout_ std::basic_string<char, _Traits, _Ax> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar);
|
template<class _Traits, class _Ax> inline _Success_(return != 0) int SecureWideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cchWideChar) LPCWSTR lpWideCharStr, _In_ int cchWideChar, _Out_ std::basic_string<char, _Traits, _Ax> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Maps a UTF-16 (wide character) string to a std::vector. The new character vector is not necessarily from a multibyte character set.
|
/// Maps a UTF-16 (wide character) string to a std::vector. The new character vector is not necessarily from a multibyte character set.
|
||||||
@ -233,7 +233,7 @@ template<class _Traits, class _Ax> inline int SecureWideCharToMultiByte(_In_ UIN
|
|||||||
///
|
///
|
||||||
/// \sa [WideCharToMultiByte function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd374130.aspx)
|
/// \sa [WideCharToMultiByte function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd374130.aspx)
|
||||||
///
|
///
|
||||||
template<class _Ax> inline int SecureWideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cchWideChar) LPCWSTR lpWideCharStr, _In_ int cchWideChar, _Inout_ std::vector<char, _Ax> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar);
|
template<class _Ax> inline _Success_(return != 0) int SecureWideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cchWideChar) LPCWSTR lpWideCharStr, _In_ int cchWideChar, _Out_ std::vector<char, _Ax> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Maps a UTF-16 (wide character) string to a std::string. The new character string is not necessarily from a multibyte character set.
|
/// Maps a UTF-16 (wide character) string to a std::string. The new character string is not necessarily from a multibyte character set.
|
||||||
@ -242,28 +242,28 @@ template<class _Ax> inline int SecureWideCharToMultiByte(_In_ UINT CodePage, _In
|
|||||||
///
|
///
|
||||||
/// \sa [WideCharToMultiByte function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd374130.aspx)
|
/// \sa [WideCharToMultiByte function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd374130.aspx)
|
||||||
///
|
///
|
||||||
template<class _Traits1, class _Ax1, class _Traits2, class _Ax2> inline int SecureWideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _Inout_ std::basic_string<wchar_t, _Traits1, _Ax1> sWideCharStr, _Out_ std::basic_string<char, _Traits2, _Ax2> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar);
|
template<class _Traits1, class _Ax1, class _Traits2, class _Ax2> inline _Success_(return != 0) int SecureWideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _Out_ std::basic_string<wchar_t, _Traits1, _Ax1> sWideCharStr, _Out_ std::basic_string<char, _Traits2, _Ax2> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Maps a character string to a UTF-16 (wide character) std::wstring. The character string is not necessarily from a multibyte character set.
|
/// Maps a character string to a UTF-16 (wide character) std::wstring. The character string is not necessarily from a multibyte character set.
|
||||||
///
|
///
|
||||||
/// \sa [MultiByteToWideChar function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd319072.aspx)
|
/// \sa [MultiByteToWideChar function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd319072.aspx)
|
||||||
///
|
///
|
||||||
template<class _Traits, class _Ax> inline int MultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cbMultiByte) LPCSTR lpMultiByteStr, _In_ int cbMultiByte, _Inout_ std::basic_string<wchar_t, _Traits, _Ax> &sWideCharStr);
|
template<class _Traits, class _Ax> inline _Success_(return != 0) int MultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cbMultiByte) LPCSTR lpMultiByteStr, _In_ int cbMultiByte, _Out_ std::basic_string<wchar_t, _Traits, _Ax> &sWideCharStr);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Maps a character string to a UTF-16 (wide character) std::vector. The character vector is not necessarily from a multibyte character set.
|
/// Maps a character string to a UTF-16 (wide character) std::vector. The character vector is not necessarily from a multibyte character set.
|
||||||
///
|
///
|
||||||
/// \sa [MultiByteToWideChar function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd319072.aspx)
|
/// \sa [MultiByteToWideChar function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd319072.aspx)
|
||||||
///
|
///
|
||||||
template<class _Ax> inline int MultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cbMultiByte) LPCSTR lpMultiByteStr, _In_ int cbMultiByte, _Inout_ std::vector<wchar_t, _Ax> &sWideCharStr);
|
template<class _Ax> inline _Success_(return != 0) int MultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cbMultiByte) LPCSTR lpMultiByteStr, _In_ int cbMultiByte, _Out_ std::vector<wchar_t, _Ax> &sWideCharStr);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Maps a character string to a UTF-16 (wide character) std::wstring. The character string is not necessarily from a multibyte character set.
|
/// Maps a character string to a UTF-16 (wide character) std::wstring. The character string is not necessarily from a multibyte character set.
|
||||||
///
|
///
|
||||||
/// \sa [MultiByteToWideChar function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd319072.aspx)
|
/// \sa [MultiByteToWideChar function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd319072.aspx)
|
||||||
///
|
///
|
||||||
template<class _Traits1, class _Ax1, class _Traits2, class _Ax2> inline int MultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_ const std::basic_string<char, _Traits1, _Ax1> &sMultiByteStr, _Inout_ std::basic_string<wchar_t, _Traits2, _Ax2> &sWideCharStr);
|
template<class _Traits1, class _Ax1, class _Traits2, class _Ax2> inline _Success_(return != 0) int MultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_ const std::basic_string<char, _Traits1, _Ax1> &sMultiByteStr, _Out_ std::basic_string<wchar_t, _Traits2, _Ax2> &sWideCharStr);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Maps a character string to a UTF-16 (wide character) std::wstring. The character string is not necessarily from a multibyte character set.
|
/// Maps a character string to a UTF-16 (wide character) std::wstring. The character string is not necessarily from a multibyte character set.
|
||||||
@ -272,7 +272,7 @@ template<class _Traits1, class _Ax1, class _Traits2, class _Ax2> inline int Mult
|
|||||||
///
|
///
|
||||||
/// \sa [MultiByteToWideChar function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd319072.aspx)
|
/// \sa [MultiByteToWideChar function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd319072.aspx)
|
||||||
///
|
///
|
||||||
template<class _Traits, class _Ax> inline int SecureMultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cbMultiByte) LPCSTR lpMultiByteStr, _In_ int cbMultiByte, _Inout_ std::basic_string<wchar_t, _Traits, _Ax> &sWideCharStr);
|
template<class _Traits, class _Ax> inline _Success_(return != 0) int SecureMultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cbMultiByte) LPCSTR lpMultiByteStr, _In_ int cbMultiByte, _Out_ std::basic_string<wchar_t, _Traits, _Ax> &sWideCharStr);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Maps a character string to a UTF-16 (wide character) std::vector. The character vector is not necessarily from a multibyte character set.
|
/// Maps a character string to a UTF-16 (wide character) std::vector. The character vector is not necessarily from a multibyte character set.
|
||||||
@ -281,7 +281,7 @@ template<class _Traits, class _Ax> inline int SecureMultiByteToWideChar(_In_ UIN
|
|||||||
///
|
///
|
||||||
/// \sa [MultiByteToWideChar function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd319072.aspx)
|
/// \sa [MultiByteToWideChar function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd319072.aspx)
|
||||||
///
|
///
|
||||||
template<class _Ax> inline int SecureMultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cbMultiByte) LPCSTR lpMultiByteStr, _In_ int cbMultiByte, _Inout_ std::vector<wchar_t, _Ax> &sWideCharStr);
|
template<class _Ax> inline _Success_(return != 0) int SecureMultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cbMultiByte) LPCSTR lpMultiByteStr, _In_ int cbMultiByte, _Out_ std::vector<wchar_t, _Ax> &sWideCharStr);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Maps a character string to a UTF-16 (wide character) std::wstring. The character string is not necessarily from a multibyte character set.
|
/// Maps a character string to a UTF-16 (wide character) std::wstring. The character string is not necessarily from a multibyte character set.
|
||||||
@ -290,17 +290,17 @@ template<class _Ax> inline int SecureMultiByteToWideChar(_In_ UINT CodePage, _In
|
|||||||
///
|
///
|
||||||
/// \sa [MultiByteToWideChar function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd319072.aspx)
|
/// \sa [MultiByteToWideChar function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd319072.aspx)
|
||||||
///
|
///
|
||||||
template<class _Traits1, class _Ax1, class _Traits2, class _Ax2> inline int SecureMultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_ const std::basic_string<char, _Traits1, _Ax1> &sMultiByteStr, _Inout_ std::basic_string<wchar_t, _Traits2, _Ax2> &sWideCharStr);
|
template<class _Traits1, class _Ax1, class _Traits2, class _Ax2> inline _Success_(return != 0) int SecureMultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_ const std::basic_string<char, _Traits1, _Ax1> &sMultiByteStr, _Out_ std::basic_string<wchar_t, _Traits2, _Ax2> &sWideCharStr);
|
||||||
|
|
||||||
/// @copydoc LoadStringW
|
/// @copydoc LoadStringW
|
||||||
template<class _Traits, class _Ax> inline int WINAPI LoadStringA(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Inout_ std::basic_string<char, _Traits, _Ax> &sBuffer);
|
template<class _Traits, class _Ax> inline _Success_(return != 0) int WINAPI LoadStringA(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_ std::basic_string<char, _Traits, _Ax> &sBuffer);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Loads a string resource from the executable file associated with a specified module.
|
/// Loads a string resource from the executable file associated with a specified module.
|
||||||
///
|
///
|
||||||
/// \sa [LoadString function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms647486.aspx)
|
/// \sa [LoadString function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms647486.aspx)
|
||||||
///
|
///
|
||||||
template<class _Traits, class _Ax> inline int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Inout_ std::basic_string<wchar_t, _Traits, _Ax> &sBuffer);
|
template<class _Traits, class _Ax> inline _Success_(return != 0) int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_ std::basic_string<wchar_t, _Traits, _Ax> &sBuffer);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Formats and sends a string to the debugger for display.
|
/// Formats and sends a string to the debugger for display.
|
||||||
@ -331,31 +331,31 @@ inline VOID OutputDebugStr(_In_z_ LPCSTR lpOutputString, ...);
|
|||||||
inline VOID OutputDebugStr(_In_z_ LPCWSTR lpOutputString, ...);
|
inline VOID OutputDebugStr(_In_z_ LPCWSTR lpOutputString, ...);
|
||||||
|
|
||||||
/// @copydoc GetDateFormatW()
|
/// @copydoc GetDateFormatW()
|
||||||
template<class _Elem, class _Traits, class _Ax> inline int GetDateFormatA(_In_ LCID Locale, _In_ DWORD dwFlags, _In_opt_ const SYSTEMTIME *lpDate, _In_opt_z_ LPCSTR lpFormat, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sDate);
|
template<class _Elem, class _Traits, class _Ax> inline _Success_(return != 0) int GetDateFormatA(_In_ LCID Locale, _In_ DWORD dwFlags, _In_opt_ const SYSTEMTIME *lpDate, _In_opt_z_ LPCSTR lpFormat, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sDate);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Formats a date as a date string for a locale specified by the locale identifier. The function formats either a specified date or the local system date.
|
/// Formats a date as a date string for a locale specified by the locale identifier. The function formats either a specified date or the local system date.
|
||||||
///
|
///
|
||||||
/// \sa [GetDateFormat function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd318086.aspx)
|
/// \sa [GetDateFormat function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd318086.aspx)
|
||||||
///
|
///
|
||||||
template<class _Elem, class _Traits, class _Ax> inline int GetDateFormatW(_In_ LCID Locale, _In_ DWORD dwFlags, _In_opt_ const SYSTEMTIME *lpDate, _In_opt_z_ LPCWSTR lpFormat, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sDate);
|
template<class _Elem, class _Traits, class _Ax> inline _Success_(return != 0) int GetDateFormatW(_In_ LCID Locale, _In_ DWORD dwFlags, _In_opt_ const SYSTEMTIME *lpDate, _In_opt_z_ LPCWSTR lpFormat, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sDate);
|
||||||
|
|
||||||
/// @copydoc LookupAccountSidW()
|
/// @copydoc LookupAccountSidW()
|
||||||
template<class _Elem, class _Traits, class _Ax> inline BOOL LookupAccountSidA(_In_opt_z_ LPCSTR lpSystemName, _In_ PSID lpSid, _Out_opt_ std::basic_string<_Elem, _Traits, _Ax> *sName, _Out_opt_ std::basic_string<_Elem, _Traits, _Ax> *sReferencedDomainName, _Out_ PSID_NAME_USE peUse);
|
template<class _Elem, class _Traits, class _Ax> inline _Success_(return != 0) BOOL LookupAccountSidA(_In_opt_z_ LPCSTR lpSystemName, _In_ PSID lpSid, _Out_opt_ std::basic_string<_Elem, _Traits, _Ax> *sName, _Out_opt_ std::basic_string<_Elem, _Traits, _Ax> *sReferencedDomainName, _Out_ PSID_NAME_USE peUse);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Retrieves the name of the account for this SID and the name of the first domain on which this SID is found.
|
/// Retrieves the name of the account for this SID and the name of the first domain on which this SID is found.
|
||||||
///
|
///
|
||||||
/// \sa [LookupAccountSid function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa379166.aspx)
|
/// \sa [LookupAccountSid function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa379166.aspx)
|
||||||
///
|
///
|
||||||
template<class _Elem, class _Traits, class _Ax> inline BOOL LookupAccountSidW(_In_opt_z_ LPCWSTR lpSystemName, _In_ PSID lpSid, _Out_opt_ std::basic_string<_Elem, _Traits, _Ax> *sName, _Out_opt_ std::basic_string<_Elem, _Traits, _Ax> *sReferencedDomainName, _Out_ PSID_NAME_USE peUse);
|
template<class _Elem, class _Traits, class _Ax> inline _Success_(return != 0) BOOL LookupAccountSidW(_In_opt_z_ LPCWSTR lpSystemName, _In_ PSID lpSid, _Out_opt_ std::basic_string<_Elem, _Traits, _Ax> *sName, _Out_opt_ std::basic_string<_Elem, _Traits, _Ax> *sReferencedDomainName, _Out_ PSID_NAME_USE peUse);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Retrieves a specified type of information about an access token. The calling process must have appropriate access rights to obtain the information.
|
/// Retrieves a specified type of information about an access token. The calling process must have appropriate access rights to obtain the information.
|
||||||
///
|
///
|
||||||
/// \sa [GetTokenInformation function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa446671.aspx)
|
/// \sa [GetTokenInformation function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa446671.aspx)
|
||||||
///
|
///
|
||||||
template<class _Ty> inline BOOL GetTokenInformation(_In_ HANDLE TokenHandle, _In_ TOKEN_INFORMATION_CLASS TokenInformationClass, _Inout_ std::unique_ptr<_Ty> &TokenInformation);
|
template<class _Ty> inline _Success_(return != 0) BOOL GetTokenInformation(_In_ HANDLE TokenHandle, _In_ TOKEN_INFORMATION_CLASS TokenInformationClass, _Out_ std::unique_ptr<_Ty> &TokenInformation);
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
@ -1135,7 +1135,7 @@ namespace winstd
|
|||||||
|
|
||||||
|
|
||||||
template<class _Elem, class _Traits, class _Ax>
|
template<class _Elem, class _Traits, class _Ax>
|
||||||
inline DWORD GetModuleFileNameA(_In_opt_ HMODULE hModule, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sValue)
|
inline DWORD GetModuleFileNameA(_In_opt_ HMODULE hModule, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sValue)
|
||||||
{
|
{
|
||||||
assert(0); // TODO: Test this code.
|
assert(0); // TODO: Test this code.
|
||||||
|
|
||||||
@ -1162,7 +1162,7 @@ inline DWORD GetModuleFileNameA(_In_opt_ HMODULE hModule, _Inout_ std::basic_str
|
|||||||
|
|
||||||
|
|
||||||
template<class _Elem, class _Traits, class _Ax>
|
template<class _Elem, class _Traits, class _Ax>
|
||||||
inline DWORD GetModuleFileNameW(_In_opt_ HMODULE hModule, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sValue)
|
inline DWORD GetModuleFileNameW(_In_opt_ HMODULE hModule, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sValue)
|
||||||
{
|
{
|
||||||
_Elem szBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(_Elem)];
|
_Elem szBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(_Elem)];
|
||||||
|
|
||||||
@ -1187,7 +1187,7 @@ inline DWORD GetModuleFileNameW(_In_opt_ HMODULE hModule, _Inout_ std::basic_str
|
|||||||
|
|
||||||
|
|
||||||
template<class _Elem, class _Traits, class _Ax>
|
template<class _Elem, class _Traits, class _Ax>
|
||||||
inline int GetWindowTextA(_In_ HWND hWnd, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sValue)
|
inline _Success_(return != 0) int GetWindowTextA(_In_ HWND hWnd, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sValue)
|
||||||
{
|
{
|
||||||
assert(0); // TODO: Test this code.
|
assert(0); // TODO: Test this code.
|
||||||
|
|
||||||
@ -1216,7 +1216,7 @@ inline int GetWindowTextA(_In_ HWND hWnd, _Inout_ std::basic_string<_Elem, _Trai
|
|||||||
|
|
||||||
|
|
||||||
template<class _Elem, class _Traits, class _Ax>
|
template<class _Elem, class _Traits, class _Ax>
|
||||||
inline int GetWindowTextW(_In_ HWND hWnd, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sValue)
|
inline _Success_(return != 0) int GetWindowTextW(_In_ HWND hWnd, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sValue)
|
||||||
{
|
{
|
||||||
assert(0); // TODO: Test this code.
|
assert(0); // TODO: Test this code.
|
||||||
|
|
||||||
@ -1245,7 +1245,7 @@ inline int GetWindowTextW(_In_ HWND hWnd, _Inout_ std::basic_string<_Elem, _Trai
|
|||||||
|
|
||||||
|
|
||||||
template<class _Ty, class _Ax>
|
template<class _Ty, class _Ax>
|
||||||
inline BOOL GetFileVersionInfoA(_In_z_ LPCSTR lptstrFilename, __reserved DWORD dwHandle, _Inout_ std::vector<_Ty, _Ax> &aValue)
|
inline _Success_(return != 0) BOOL GetFileVersionInfoA(_In_z_ LPCSTR lptstrFilename, __reserved DWORD dwHandle, _Out_ std::vector<_Ty, _Ax> &aValue)
|
||||||
{
|
{
|
||||||
assert(0); // TODO: Test this code.
|
assert(0); // TODO: Test this code.
|
||||||
|
|
||||||
@ -1261,7 +1261,7 @@ inline BOOL GetFileVersionInfoA(_In_z_ LPCSTR lptstrFilename, __reserved DWORD d
|
|||||||
|
|
||||||
|
|
||||||
template<class _Ty, class _Ax>
|
template<class _Ty, class _Ax>
|
||||||
inline BOOL GetFileVersionInfoW(_In_z_ LPCWSTR lptstrFilename, __reserved DWORD dwHandle, _Inout_ std::vector<_Ty, _Ax> &aValue)
|
inline _Success_(return != 0) BOOL GetFileVersionInfoW(_In_z_ LPCWSTR lptstrFilename, __reserved DWORD dwHandle, _Out_ std::vector<_Ty, _Ax> &aValue)
|
||||||
{
|
{
|
||||||
assert(0); // TODO: Test this code.
|
assert(0); // TODO: Test this code.
|
||||||
|
|
||||||
@ -1277,7 +1277,7 @@ inline BOOL GetFileVersionInfoW(_In_z_ LPCWSTR lptstrFilename, __reserved DWORD
|
|||||||
|
|
||||||
|
|
||||||
template<class _Elem, class _Traits, class _Ax>
|
template<class _Elem, class _Traits, class _Ax>
|
||||||
inline DWORD ExpandEnvironmentStringsA(_In_z_ LPCSTR lpSrc, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sValue)
|
inline _Success_(return != 0) DWORD ExpandEnvironmentStringsA(_In_z_ LPCSTR lpSrc, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sValue)
|
||||||
{
|
{
|
||||||
assert(0); // TODO: Test this code.
|
assert(0); // TODO: Test this code.
|
||||||
|
|
||||||
@ -1301,7 +1301,7 @@ inline DWORD ExpandEnvironmentStringsA(_In_z_ LPCSTR lpSrc, _Inout_ std::basic_s
|
|||||||
|
|
||||||
|
|
||||||
template<class _Elem, class _Traits, class _Ax>
|
template<class _Elem, class _Traits, class _Ax>
|
||||||
inline DWORD ExpandEnvironmentStringsW(_In_z_ LPCWSTR lpSrc, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sValue)
|
inline _Success_(return != 0) DWORD ExpandEnvironmentStringsW(_In_z_ LPCWSTR lpSrc, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sValue)
|
||||||
{
|
{
|
||||||
for (DWORD dwSizeOut = (DWORD)wcslen(lpSrc) + 0x100;;) {
|
for (DWORD dwSizeOut = (DWORD)wcslen(lpSrc) + 0x100;;) {
|
||||||
DWORD dwSizeIn = dwSizeOut;
|
DWORD dwSizeIn = dwSizeOut;
|
||||||
@ -1323,7 +1323,7 @@ inline DWORD ExpandEnvironmentStringsW(_In_z_ LPCWSTR lpSrc, _Inout_ std::basic_
|
|||||||
|
|
||||||
|
|
||||||
template<class _Elem, class _Traits, class _Ax>
|
template<class _Elem, class _Traits, class _Ax>
|
||||||
inline VOID GuidToStringA(_In_ LPCGUID lpGuid, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &str)
|
inline VOID GuidToStringA(_In_ LPCGUID lpGuid, _Out_ std::basic_string<_Elem, _Traits, _Ax> &str)
|
||||||
{
|
{
|
||||||
assert(0); // TODO: Test this code.
|
assert(0); // TODO: Test this code.
|
||||||
|
|
||||||
@ -1337,7 +1337,7 @@ inline VOID GuidToStringA(_In_ LPCGUID lpGuid, _Inout_ std::basic_string<_Elem,
|
|||||||
|
|
||||||
|
|
||||||
template<class _Elem, class _Traits, class _Ax>
|
template<class _Elem, class _Traits, class _Ax>
|
||||||
inline VOID GuidToStringW(_In_ LPCGUID lpGuid, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &str)
|
inline VOID GuidToStringW(_In_ LPCGUID lpGuid, _Out_ std::basic_string<_Elem, _Traits, _Ax> &str)
|
||||||
{
|
{
|
||||||
assert(0); // TODO: Test this code.
|
assert(0); // TODO: Test this code.
|
||||||
|
|
||||||
@ -1351,7 +1351,7 @@ inline VOID GuidToStringW(_In_ LPCGUID lpGuid, _Inout_ std::basic_string<_Elem,
|
|||||||
|
|
||||||
|
|
||||||
template<class _Elem, class _Traits, class _Ax>
|
template<class _Elem, class _Traits, class _Ax>
|
||||||
inline LSTATUS RegQueryStringValue(_In_ HKEY hReg, _In_z_ LPCSTR pszName, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sValue)
|
inline LSTATUS RegQueryStringValue(_In_ HKEY hReg, _In_z_ LPCSTR pszName, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sValue)
|
||||||
{
|
{
|
||||||
LSTATUS lResult;
|
LSTATUS lResult;
|
||||||
BYTE aStackBuffer[WINSTD_STACK_BUFFER_BYTES];
|
BYTE aStackBuffer[WINSTD_STACK_BUFFER_BYTES];
|
||||||
@ -1398,7 +1398,7 @@ inline LSTATUS RegQueryStringValue(_In_ HKEY hReg, _In_z_ LPCSTR pszName, _Inout
|
|||||||
|
|
||||||
|
|
||||||
template<class _Elem, class _Traits, class _Ax>
|
template<class _Elem, class _Traits, class _Ax>
|
||||||
inline LSTATUS RegQueryStringValue(_In_ HKEY hReg, _In_z_ LPCWSTR pszName, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sValue)
|
inline LSTATUS RegQueryStringValue(_In_ HKEY hReg, _In_z_ LPCWSTR pszName, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sValue)
|
||||||
{
|
{
|
||||||
LSTATUS lResult;
|
LSTATUS lResult;
|
||||||
BYTE aStackBuffer[WINSTD_STACK_BUFFER_BYTES];
|
BYTE aStackBuffer[WINSTD_STACK_BUFFER_BYTES];
|
||||||
@ -1445,14 +1445,14 @@ inline LSTATUS RegQueryStringValue(_In_ HKEY hReg, _In_z_ LPCWSTR pszName, _Inou
|
|||||||
|
|
||||||
|
|
||||||
template<class _Ty, class _Ax>
|
template<class _Ty, class _Ax>
|
||||||
inline LSTATUS RegQueryValueExA(_In_ HKEY hKey, _In_opt_z_ LPCSTR lpValueName, __reserved LPDWORD lpReserved, _Out_opt_ LPDWORD lpType, _Inout_ std::vector<_Ty, _Ax> &aData)
|
inline LSTATUS RegQueryValueExA(_In_ HKEY hKey, _In_opt_z_ LPCSTR lpValueName, __reserved LPDWORD lpReserved, _Out_opt_ LPDWORD lpType, _Out_ std::vector<_Ty, _Ax> &aData)
|
||||||
{
|
{
|
||||||
LSTATUS lResult;
|
LSTATUS lResult;
|
||||||
BYTE aStackBuffer[WINSTD_STACK_BUFFER_BYTES];
|
BYTE aStackBuffer[WINSTD_STACK_BUFFER_BYTES];
|
||||||
DWORD dwSize = sizeof(aStackBuffer);
|
DWORD dwSize = sizeof(aStackBuffer);
|
||||||
|
|
||||||
// Try with stack buffer first.
|
// Try with stack buffer first.
|
||||||
lResult = RegQueryValueExA(hKey, lpValueName, lpReserved, NULL, aStackBuffer, &dwSize);
|
lResult = RegQueryValueExA(hKey, lpValueName, lpReserved, lpType, aStackBuffer, &dwSize);
|
||||||
if (lResult == ERROR_SUCCESS) {
|
if (lResult == ERROR_SUCCESS) {
|
||||||
// Copy from stack buffer.
|
// Copy from stack buffer.
|
||||||
aData.resize((dwSize + sizeof(_Ty) - 1) / sizeof(_Ty));
|
aData.resize((dwSize + sizeof(_Ty) - 1) / sizeof(_Ty));
|
||||||
@ -1460,7 +1460,7 @@ inline LSTATUS RegQueryValueExA(_In_ HKEY hKey, _In_opt_z_ LPCSTR lpValueName, _
|
|||||||
} else if (lResult == ERROR_MORE_DATA) {
|
} else if (lResult == ERROR_MORE_DATA) {
|
||||||
// Allocate buffer on heap and retry.
|
// Allocate buffer on heap and retry.
|
||||||
aData.resize((dwSize + sizeof(_Ty) - 1) / sizeof(_Ty));
|
aData.resize((dwSize + sizeof(_Ty) - 1) / sizeof(_Ty));
|
||||||
lResult = RegQueryValueExA(hKey, lpValueName, lpReserved, lpType, aData.data(), &dwSize);
|
lResult = RegQueryValueExA(hKey, lpValueName, lpReserved, NULL, aData.data(), &dwSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
return lResult;
|
return lResult;
|
||||||
@ -1468,14 +1468,14 @@ inline LSTATUS RegQueryValueExA(_In_ HKEY hKey, _In_opt_z_ LPCSTR lpValueName, _
|
|||||||
|
|
||||||
|
|
||||||
template<class _Ty, class _Ax>
|
template<class _Ty, class _Ax>
|
||||||
inline LSTATUS RegQueryValueExW(_In_ HKEY hKey, _In_opt_z_ LPCWSTR lpValueName, __reserved LPDWORD lpReserved, _Out_opt_ LPDWORD lpType, _Inout_ std::vector<_Ty, _Ax> &aData)
|
inline LSTATUS RegQueryValueExW(_In_ HKEY hKey, _In_opt_z_ LPCWSTR lpValueName, __reserved LPDWORD lpReserved, _Out_opt_ LPDWORD lpType, _Out_ std::vector<_Ty, _Ax> &aData)
|
||||||
{
|
{
|
||||||
LSTATUS lResult;
|
LSTATUS lResult;
|
||||||
BYTE aStackBuffer[WINSTD_STACK_BUFFER_BYTES];
|
BYTE aStackBuffer[WINSTD_STACK_BUFFER_BYTES];
|
||||||
DWORD dwSize = sizeof(aStackBuffer);
|
DWORD dwSize = sizeof(aStackBuffer);
|
||||||
|
|
||||||
// Try with stack buffer first.
|
// Try with stack buffer first.
|
||||||
lResult = RegQueryValueExW(hKey, lpValueName, lpReserved, NULL, aStackBuffer, &dwSize);
|
lResult = RegQueryValueExW(hKey, lpValueName, lpReserved, lpType, aStackBuffer, &dwSize);
|
||||||
if (lResult == ERROR_SUCCESS) {
|
if (lResult == ERROR_SUCCESS) {
|
||||||
// Copy from stack buffer.
|
// Copy from stack buffer.
|
||||||
aData.resize((dwSize + sizeof(_Ty) - 1) / sizeof(_Ty));
|
aData.resize((dwSize + sizeof(_Ty) - 1) / sizeof(_Ty));
|
||||||
@ -1483,7 +1483,7 @@ inline LSTATUS RegQueryValueExW(_In_ HKEY hKey, _In_opt_z_ LPCWSTR lpValueName,
|
|||||||
} else if (lResult == ERROR_MORE_DATA) {
|
} else if (lResult == ERROR_MORE_DATA) {
|
||||||
// Allocate buffer on heap and retry.
|
// Allocate buffer on heap and retry.
|
||||||
aData.resize((dwSize + sizeof(_Ty) - 1) / sizeof(_Ty));
|
aData.resize((dwSize + sizeof(_Ty) - 1) / sizeof(_Ty));
|
||||||
lResult = RegQueryValueExW(hKey, lpValueName, lpReserved, lpType, aData.data(), &dwSize);
|
lResult = RegQueryValueExW(hKey, lpValueName, lpReserved, NULL, aData.data(), &dwSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
return lResult;
|
return lResult;
|
||||||
@ -1493,7 +1493,7 @@ inline LSTATUS RegQueryValueExW(_In_ HKEY hKey, _In_opt_z_ LPCWSTR lpValueName,
|
|||||||
#if _WIN32_WINNT >= _WIN32_WINNT_VISTA
|
#if _WIN32_WINNT >= _WIN32_WINNT_VISTA
|
||||||
|
|
||||||
template<class _Elem, class _Traits, class _Ax>
|
template<class _Elem, class _Traits, class _Ax>
|
||||||
inline LSTATUS RegLoadMUIStringA(_In_ HKEY hKey, _In_opt_z_ LPCSTR pszValue, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sOut, _In_ DWORD Flags, _In_opt_z_ LPCSTR pszDirectory)
|
inline LSTATUS RegLoadMUIStringA(_In_ HKEY hKey, _In_opt_z_ LPCSTR pszValue, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sOut, _In_ DWORD Flags, _In_opt_z_ LPCSTR pszDirectory)
|
||||||
{
|
{
|
||||||
// According to "Remarks" section in MSDN documentation of RegLoadMUIString(),
|
// According to "Remarks" section in MSDN documentation of RegLoadMUIString(),
|
||||||
// this function is defined but not implemented as ANSI variation.
|
// this function is defined but not implemented as ANSI variation.
|
||||||
@ -1503,7 +1503,7 @@ inline LSTATUS RegLoadMUIStringA(_In_ HKEY hKey, _In_opt_z_ LPCSTR pszValue, _In
|
|||||||
|
|
||||||
|
|
||||||
template<class _Elem, class _Traits, class _Ax>
|
template<class _Elem, class _Traits, class _Ax>
|
||||||
inline LSTATUS RegLoadMUIStringW(_In_ HKEY hKey, _In_opt_z_ LPCWSTR pszValue, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sOut, _In_ DWORD Flags, _In_opt_z_ LPCWSTR pszDirectory)
|
inline LSTATUS RegLoadMUIStringW(_In_ HKEY hKey, _In_opt_z_ LPCWSTR pszValue, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sOut, _In_ DWORD Flags, _In_opt_z_ LPCWSTR pszDirectory)
|
||||||
{
|
{
|
||||||
LSTATUS lResult;
|
LSTATUS lResult;
|
||||||
_Elem szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(_Elem)];
|
_Elem szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(_Elem)];
|
||||||
@ -1529,7 +1529,7 @@ inline LSTATUS RegLoadMUIStringW(_In_ HKEY hKey, _In_opt_z_ LPCWSTR pszValue, _I
|
|||||||
|
|
||||||
|
|
||||||
template<class _Traits, class _Ax>
|
template<class _Traits, class _Ax>
|
||||||
inline int WideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cchWideChar) LPCWSTR lpWideCharStr, _In_ int cchWideChar, _Inout_ std::basic_string<char, _Traits, _Ax> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar)
|
inline _Success_(return != 0) int WideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cchWideChar) LPCWSTR lpWideCharStr, _In_ int cchWideChar, _Out_ std::basic_string<char, _Traits, _Ax> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar)
|
||||||
{
|
{
|
||||||
CHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(CHAR)];
|
CHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(CHAR)];
|
||||||
|
|
||||||
@ -1551,7 +1551,7 @@ inline int WideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_cou
|
|||||||
|
|
||||||
|
|
||||||
template<class _Ax>
|
template<class _Ax>
|
||||||
inline int WideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cchWideChar) LPCWSTR lpWideCharStr, _In_ int cchWideChar, _Inout_ std::vector<char, _Ax> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar)
|
inline _Success_(return != 0) int WideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cchWideChar) LPCWSTR lpWideCharStr, _In_ int cchWideChar, _Out_ std::vector<char, _Ax> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar)
|
||||||
{
|
{
|
||||||
CHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(CHAR)];
|
CHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(CHAR)];
|
||||||
|
|
||||||
@ -1572,7 +1572,7 @@ inline int WideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_cou
|
|||||||
|
|
||||||
|
|
||||||
template<class _Traits1, class _Ax1, class _Traits2, class _Ax2>
|
template<class _Traits1, class _Ax1, class _Traits2, class _Ax2>
|
||||||
inline int WideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_ std::basic_string<wchar_t, _Traits1, _Ax1> sWideCharStr, _Inout_ std::basic_string<char, _Traits2, _Ax2> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar)
|
inline _Success_(return != 0) int WideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_ std::basic_string<wchar_t, _Traits1, _Ax1> sWideCharStr, _Out_ std::basic_string<char, _Traits2, _Ax2> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar)
|
||||||
{
|
{
|
||||||
CHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(CHAR)];
|
CHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(CHAR)];
|
||||||
|
|
||||||
@ -1594,7 +1594,7 @@ inline int WideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_ std:
|
|||||||
|
|
||||||
|
|
||||||
template<class _Traits, class _Ax>
|
template<class _Traits, class _Ax>
|
||||||
inline int SecureWideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cchWideChar) LPCWSTR lpWideCharStr, _In_ int cchWideChar, _Inout_ std::basic_string<char, _Traits, _Ax> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar)
|
inline _Success_(return != 0) int SecureWideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cchWideChar) LPCWSTR lpWideCharStr, _In_ int cchWideChar, _Out_ std::basic_string<char, _Traits, _Ax> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar)
|
||||||
{
|
{
|
||||||
CHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(CHAR)];
|
CHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(CHAR)];
|
||||||
|
|
||||||
@ -1619,7 +1619,7 @@ inline int SecureWideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In
|
|||||||
|
|
||||||
|
|
||||||
template<class _Ax>
|
template<class _Ax>
|
||||||
inline int SecureWideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cchWideChar) LPCWSTR lpWideCharStr, _In_ int cchWideChar, _Inout_ std::vector<char, _Ax> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar)
|
inline _Success_(return != 0) int SecureWideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cchWideChar) LPCWSTR lpWideCharStr, _In_ int cchWideChar, _Out_ std::vector<char, _Ax> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar)
|
||||||
{
|
{
|
||||||
CHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(CHAR)];
|
CHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(CHAR)];
|
||||||
|
|
||||||
@ -1642,7 +1642,7 @@ inline int SecureWideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In
|
|||||||
|
|
||||||
|
|
||||||
template<class _Traits1, class _Ax1, class _Traits2, class _Ax2>
|
template<class _Traits1, class _Ax1, class _Traits2, class _Ax2>
|
||||||
inline int SecureWideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_ std::basic_string<wchar_t, _Traits1, _Ax1> sWideCharStr, _Inout_ std::basic_string<char, _Traits2, _Ax2> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar)
|
inline _Success_(return != 0) int SecureWideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_ std::basic_string<wchar_t, _Traits1, _Ax1> sWideCharStr, _Out_ std::basic_string<char, _Traits2, _Ax2> &sMultiByteStr, _In_opt_z_ LPCSTR lpDefaultChar, _Out_opt_ LPBOOL lpUsedDefaultChar)
|
||||||
{
|
{
|
||||||
CHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(CHAR)];
|
CHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(CHAR)];
|
||||||
|
|
||||||
@ -1667,7 +1667,7 @@ inline int SecureWideCharToMultiByte(_In_ UINT CodePage, _In_ DWORD dwFlags, _In
|
|||||||
|
|
||||||
|
|
||||||
template<class _Traits, class _Ax>
|
template<class _Traits, class _Ax>
|
||||||
inline int MultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cbMultiByte) LPCSTR lpMultiByteStr, _In_ int cbMultiByte, _Inout_ std::basic_string<wchar_t, _Traits, _Ax> &sWideCharStr)
|
inline _Success_(return != 0) int MultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cbMultiByte) LPCSTR lpMultiByteStr, _In_ int cbMultiByte, _Out_ std::basic_string<wchar_t, _Traits, _Ax> &sWideCharStr)
|
||||||
{
|
{
|
||||||
WCHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(WCHAR)];
|
WCHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(WCHAR)];
|
||||||
|
|
||||||
@ -1689,7 +1689,7 @@ inline int MultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_cou
|
|||||||
|
|
||||||
|
|
||||||
template<class _Ax>
|
template<class _Ax>
|
||||||
inline int MultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cbMultiByte) LPCSTR lpMultiByteStr, _In_ int cbMultiByte, _Inout_ std::vector<wchar_t, _Ax> &sWideCharStr)
|
inline _Success_(return != 0) int MultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cbMultiByte) LPCSTR lpMultiByteStr, _In_ int cbMultiByte, _Out_ std::vector<wchar_t, _Ax> &sWideCharStr)
|
||||||
{
|
{
|
||||||
WCHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(WCHAR)];
|
WCHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(WCHAR)];
|
||||||
|
|
||||||
@ -1710,7 +1710,7 @@ inline int MultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_cou
|
|||||||
|
|
||||||
|
|
||||||
template<class _Traits1, class _Ax1, class _Traits2, class _Ax2>
|
template<class _Traits1, class _Ax1, class _Traits2, class _Ax2>
|
||||||
inline int MultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_ const std::basic_string<char, _Traits1, _Ax1> &sMultiByteStr, _Out_ std::basic_string<wchar_t, _Traits2, _Ax2> &sWideCharStr)
|
inline _Success_(return != 0) int MultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_ const std::basic_string<char, _Traits1, _Ax1> &sMultiByteStr, _Out_ std::basic_string<wchar_t, _Traits2, _Ax2> &sWideCharStr)
|
||||||
{
|
{
|
||||||
WCHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(WCHAR)];
|
WCHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(WCHAR)];
|
||||||
|
|
||||||
@ -1732,7 +1732,7 @@ inline int MultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_ cons
|
|||||||
|
|
||||||
|
|
||||||
template<class _Traits, class _Ax>
|
template<class _Traits, class _Ax>
|
||||||
inline int SecureMultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cbMultiByte) LPCSTR lpMultiByteStr, _In_ int cbMultiByte, _Inout_ std::basic_string<wchar_t, _Traits, _Ax> &sWideCharStr)
|
inline _Success_(return != 0) int SecureMultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cbMultiByte) LPCSTR lpMultiByteStr, _In_ int cbMultiByte, _Out_ std::basic_string<wchar_t, _Traits, _Ax> &sWideCharStr)
|
||||||
{
|
{
|
||||||
WCHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(WCHAR)];
|
WCHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(WCHAR)];
|
||||||
|
|
||||||
@ -1757,7 +1757,7 @@ inline int SecureMultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In
|
|||||||
|
|
||||||
|
|
||||||
template<class _Ax>
|
template<class _Ax>
|
||||||
inline int SecureMultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cbMultiByte) LPCSTR lpMultiByteStr, _In_ int cbMultiByte, _Inout_ std::vector<wchar_t, _Ax> &sWideCharStr)
|
inline _Success_(return != 0) int SecureMultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_z_count_(cbMultiByte) LPCSTR lpMultiByteStr, _In_ int cbMultiByte, _Out_ std::vector<wchar_t, _Ax> &sWideCharStr)
|
||||||
{
|
{
|
||||||
WCHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(WCHAR)];
|
WCHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(WCHAR)];
|
||||||
|
|
||||||
@ -1780,7 +1780,7 @@ inline int SecureMultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In
|
|||||||
|
|
||||||
|
|
||||||
template<class _Traits1, class _Ax1, class _Traits2, class _Ax2>
|
template<class _Traits1, class _Ax1, class _Traits2, class _Ax2>
|
||||||
inline int SecureMultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_ const std::basic_string<char, _Traits1, _Ax1> &sMultiByteStr, _Out_ std::basic_string<wchar_t, _Traits2, _Ax2> &sWideCharStr)
|
inline _Success_(return != 0) int SecureMultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In_ const std::basic_string<char, _Traits1, _Ax1> &sMultiByteStr, _Out_ std::basic_string<wchar_t, _Traits2, _Ax2> &sWideCharStr)
|
||||||
{
|
{
|
||||||
WCHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(WCHAR)];
|
WCHAR szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(WCHAR)];
|
||||||
|
|
||||||
@ -1805,7 +1805,7 @@ inline int SecureMultiByteToWideChar(_In_ UINT CodePage, _In_ DWORD dwFlags, _In
|
|||||||
|
|
||||||
|
|
||||||
template<class _Traits, class _Ax>
|
template<class _Traits, class _Ax>
|
||||||
inline int WINAPI LoadStringA(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Inout_ std::basic_string<char, _Traits, _Ax> &sBuffer)
|
inline _Success_(return != 0) int WINAPI LoadStringA(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_ std::basic_string<char, _Traits, _Ax> &sBuffer)
|
||||||
{
|
{
|
||||||
// Get read-only pointer to string resource.
|
// Get read-only pointer to string resource.
|
||||||
LPCSTR pszStr;
|
LPCSTR pszStr;
|
||||||
@ -1819,7 +1819,7 @@ inline int WINAPI LoadStringA(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Inou
|
|||||||
|
|
||||||
|
|
||||||
template<class _Traits, class _Ax>
|
template<class _Traits, class _Ax>
|
||||||
inline int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Inout_ std::basic_string<wchar_t, _Traits, _Ax> &sBuffer)
|
inline _Success_(return != 0) int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_ std::basic_string<wchar_t, _Traits, _Ax> &sBuffer)
|
||||||
{
|
{
|
||||||
// Get read-only pointer to string resource.
|
// Get read-only pointer to string resource.
|
||||||
LPCWSTR pszStr;
|
LPCWSTR pszStr;
|
||||||
@ -1866,7 +1866,7 @@ inline VOID OutputDebugStr(_In_z_ LPCWSTR lpOutputString, ...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class _Elem, class _Traits, class _Ax> inline int GetDateFormatA(_In_ LCID Locale, _In_ DWORD dwFlags, _In_opt_ const SYSTEMTIME *lpDate, _In_opt_z_ LPCSTR lpFormat, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sDate)
|
template<class _Elem, class _Traits, class _Ax> inline _Success_(return != 0) int GetDateFormatA(_In_ LCID Locale, _In_ DWORD dwFlags, _In_opt_ const SYSTEMTIME *lpDate, _In_opt_z_ LPCSTR lpFormat, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sDate)
|
||||||
{
|
{
|
||||||
int iResult = GetDateFormatA(Locale, dwFlags, lpDate, lpFormat, NULL, 0);
|
int iResult = GetDateFormatA(Locale, dwFlags, lpDate, lpFormat, NULL, 0);
|
||||||
if (iResult) {
|
if (iResult) {
|
||||||
@ -1881,7 +1881,7 @@ template<class _Elem, class _Traits, class _Ax> inline int GetDateFormatA(_In_ L
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class _Elem, class _Traits, class _Ax> inline int GetDateFormatW(_In_ LCID Locale, _In_ DWORD dwFlags, _In_opt_ const SYSTEMTIME *lpDate, _In_opt_z_ LPCWSTR lpFormat, _Inout_ std::basic_string<_Elem, _Traits, _Ax> &sDate)
|
template<class _Elem, class _Traits, class _Ax> inline _Success_(return != 0) int GetDateFormatW(_In_ LCID Locale, _In_ DWORD dwFlags, _In_opt_ const SYSTEMTIME *lpDate, _In_opt_z_ LPCWSTR lpFormat, _Out_ std::basic_string<_Elem, _Traits, _Ax> &sDate)
|
||||||
{
|
{
|
||||||
int iResult = GetDateFormatW(Locale, dwFlags, lpDate, lpFormat, NULL, 0);
|
int iResult = GetDateFormatW(Locale, dwFlags, lpDate, lpFormat, NULL, 0);
|
||||||
if (iResult) {
|
if (iResult) {
|
||||||
@ -1897,7 +1897,7 @@ template<class _Elem, class _Traits, class _Ax> inline int GetDateFormatW(_In_ L
|
|||||||
|
|
||||||
|
|
||||||
template<class _Elem, class _Traits, class _Ax>
|
template<class _Elem, class _Traits, class _Ax>
|
||||||
inline BOOL LookupAccountSidA(_In_opt_z_ LPCSTR lpSystemName, _In_ PSID lpSid, _Out_opt_ std::basic_string<_Elem, _Traits, _Ax> *sName, _Out_opt_ std::basic_string<_Elem, _Traits, _Ax> *sReferencedDomainName, _Out_ PSID_NAME_USE peUse)
|
inline _Success_(return != 0) BOOL LookupAccountSidA(_In_opt_z_ LPCSTR lpSystemName, _In_ PSID lpSid, _Out_opt_ std::basic_string<_Elem, _Traits, _Ax> *sName, _Out_opt_ std::basic_string<_Elem, _Traits, _Ax> *sReferencedDomainName, _Out_ PSID_NAME_USE peUse)
|
||||||
{
|
{
|
||||||
assert(0); // TODO: Test this code.
|
assert(0); // TODO: Test this code.
|
||||||
|
|
||||||
@ -1932,7 +1932,7 @@ inline BOOL LookupAccountSidA(_In_opt_z_ LPCSTR lpSystemName, _In_ PSID lpSid, _
|
|||||||
|
|
||||||
|
|
||||||
template<class _Elem, class _Traits, class _Ax>
|
template<class _Elem, class _Traits, class _Ax>
|
||||||
inline BOOL LookupAccountSidW(_In_opt_z_ LPCWSTR lpSystemName, _In_ PSID lpSid, _Out_opt_ std::basic_string<_Elem, _Traits, _Ax> *sName, _Out_opt_ std::basic_string<_Elem, _Traits, _Ax> *sReferencedDomainName, _Out_ PSID_NAME_USE peUse)
|
inline _Success_(return != 0) BOOL LookupAccountSidW(_In_opt_z_ LPCWSTR lpSystemName, _In_ PSID lpSid, _Out_opt_ std::basic_string<_Elem, _Traits, _Ax> *sName, _Out_opt_ std::basic_string<_Elem, _Traits, _Ax> *sReferencedDomainName, _Out_ PSID_NAME_USE peUse)
|
||||||
{
|
{
|
||||||
assert(0); // TODO: Test this code.
|
assert(0); // TODO: Test this code.
|
||||||
|
|
||||||
@ -1967,7 +1967,7 @@ inline BOOL LookupAccountSidW(_In_opt_z_ LPCWSTR lpSystemName, _In_ PSID lpSid,
|
|||||||
|
|
||||||
|
|
||||||
template<class _Ty>
|
template<class _Ty>
|
||||||
inline BOOL GetTokenInformation(_In_ HANDLE TokenHandle, _In_ TOKEN_INFORMATION_CLASS TokenInformationClass, _Inout_ std::unique_ptr<_Ty> &TokenInformation)
|
inline _Success_(return != 0) BOOL GetTokenInformation(_In_ HANDLE TokenHandle, _In_ TOKEN_INFORMATION_CLASS TokenInformationClass, _Out_ std::unique_ptr<_Ty> &TokenInformation)
|
||||||
{
|
{
|
||||||
BYTE szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(BYTE)];
|
BYTE szStackBuffer[WINSTD_STACK_BUFFER_BYTES/sizeof(BYTE)];
|
||||||
DWORD dwSize;
|
DWORD dwSize;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user