Cleanup WINSTD_API and WINSTD_NOVTABLE

WINSTD_API: the WinStd is never compiled as DLL any more. No public
function or class needs __declspec(dllexport)/__declspec(dllimport) any
more.

WINSTD_NOVTABLE: inlined

Signed-off-by: Simon Rozman <simon@rozman.si>
This commit is contained in:
Simon Rozman 2021-03-30 11:59:18 +02:00
parent 96197da77e
commit 51b262b382
14 changed files with 127 additions and 149 deletions

View File

@ -30,8 +30,8 @@
namespace winstd namespace winstd
{ {
class WINSTD_API base64_enc; class base64_enc;
class WINSTD_API base64_dec; class base64_dec;
} }
#pragma once #pragma once
@ -45,7 +45,7 @@ namespace winstd
/// ///
/// Base64 encoding session /// Base64 encoding session
/// ///
class WINSTD_API base64_enc class base64_enc
{ {
public: public:
/// ///
@ -176,7 +176,7 @@ namespace winstd
/// ///
/// Base64 decoding session /// Base64 decoding session
/// ///
class WINSTD_API base64_dec class base64_dec
{ {
public: public:
/// ///

View File

@ -29,12 +29,12 @@
namespace winstd namespace winstd
{ {
class WINSTD_API com_runtime_error; class com_runtime_error;
struct WINSTD_API CoTaskMemFree_delete; struct CoTaskMemFree_delete;
template <class T> class com_obj; template <class T> class com_obj;
class WINSTD_API bstr; class bstr;
class WINSTD_API variant; class variant;
class WINSTD_API com_initializer; class com_initializer;
} }
#pragma once #pragma once
@ -55,7 +55,7 @@ namespace winstd
/// ///
/// \note Must be defined as derived class from num_runtime_error<> to allow correct type info for dynamic typecasting and prevent folding with other derivates of num_runtime_error<>. /// \note Must be defined as derived class from num_runtime_error<> to allow correct type info for dynamic typecasting and prevent folding with other derivates of num_runtime_error<>.
/// ///
class WINSTD_API com_runtime_error : public num_runtime_error<HRESULT> class com_runtime_error : public num_runtime_error<HRESULT>
{ {
public: public:
/// ///
@ -87,7 +87,7 @@ namespace winstd
/// ///
/// Deleter for unique_ptr using CoTaskMemFree /// Deleter for unique_ptr using CoTaskMemFree
/// ///
struct WINSTD_API CoTaskMemFree_delete struct CoTaskMemFree_delete
{ {
/// ///
/// Default constructor /// Default constructor
@ -238,7 +238,7 @@ namespace winstd
/// ///
/// BSTR string wrapper /// BSTR string wrapper
/// ///
class WINSTD_API bstr : public dplhandle<BSTR, NULL> class bstr : public dplhandle<BSTR, NULL>
{ {
DPLHANDLE_IMPL(bstr, NULL) DPLHANDLE_IMPL(bstr, NULL)
@ -311,7 +311,7 @@ namespace winstd
/// ///
#pragma warning(push) #pragma warning(push)
#pragma warning(disable: 26432) // Copy constructor and assignment operator are also present, but not detected by code analysis as they are using base type source object reference. #pragma warning(disable: 26432) // Copy constructor and assignment operator are also present, but not detected by code analysis as they are using base type source object reference.
class WINSTD_API variant : public VARIANT class variant : public VARIANT
{ {
public: public:
/// ///
@ -1062,7 +1062,7 @@ namespace winstd
/// ///
/// Context scope automatic COM (un)initialization /// Context scope automatic COM (un)initialization
/// ///
class WINSTD_API com_initializer class com_initializer
{ {
WINSTD_NONCOPYABLE(com_initializer) WINSTD_NONCOPYABLE(com_initializer)
WINSTD_NONMOVABLE(com_initializer) WINSTD_NONMOVABLE(com_initializer)

View File

@ -54,28 +54,6 @@
/// \addtogroup WinStdGeneral /// \addtogroup WinStdGeneral
/// @{ /// @{
///
/// Public function calling convention
///
#ifndef WINSTD_API
#if defined(WINSTD_DLL)
#define WINSTD_API __declspec(dllexport)
#elif defined(WINSTD_DLLIMP)
#define WINSTD_API __declspec(dllimport)
#else
#define WINSTD_API
#endif
#endif
///
/// Class/struct with no virtual table declaration
///
/// Use for storing flat data.
///
/// This macro bypasses Doxygen limitation to parse class/struct declarations with parentheses.
///
#define WINSTD_NOVTABLE __declspec(novtable)
/// ///
/// "L" stringizing macro /// "L" stringizing macro
/// ///
@ -222,7 +200,7 @@ namespace winstd
template <class T, T INVAL> class dplhandle; template <class T, T INVAL> class dplhandle;
template <class T> class vector_queue; template <class T> class vector_queue;
template <typename _Tn> class num_runtime_error; template <typename _Tn> class num_runtime_error;
class WINSTD_API win_runtime_error; class win_runtime_error;
/// \addtogroup WinStdGeneral /// \addtogroup WinStdGeneral
/// @{ /// @{
@ -296,8 +274,8 @@ namespace winstd
template<class _Elem, class _Traits = std::char_traits<_Elem>, class _Ax = std::allocator<_Elem> > class basic_string_guid; template<class _Elem, class _Traits = std::char_traits<_Elem>, class _Ax = std::allocator<_Elem> > class basic_string_guid;
class WINSTD_API string_guid; class string_guid;
class WINSTD_API wstring_guid; class wstring_guid;
/// ///
/// Multi-byte / Wide-character string GUID (according to _UNICODE) /// Multi-byte / Wide-character string GUID (according to _UNICODE)
@ -1561,7 +1539,7 @@ namespace winstd
/// ///
/// Windows runtime error /// Windows runtime error
/// ///
class WINSTD_API win_runtime_error : public num_runtime_error<DWORD> class win_runtime_error : public num_runtime_error<DWORD>
{ {
public: public:
/// ///
@ -1839,7 +1817,7 @@ namespace winstd
/// ///
/// Single-byte character implementation of a class to support converting GUID to string /// Single-byte character implementation of a class to support converting GUID to string
/// ///
class WINSTD_API string_guid : public basic_string_guid<char, std::char_traits<char>, std::allocator<char> > class string_guid : public basic_string_guid<char, std::char_traits<char>, std::allocator<char> >
{ {
public: public:
/// \name Initializing string using template in memory /// \name Initializing string using template in memory
@ -1862,7 +1840,7 @@ namespace winstd
/// ///
/// Wide character implementation of a class to support converting GUID to string /// Wide character implementation of a class to support converting GUID to string
/// ///
class WINSTD_API wstring_guid : public basic_string_guid<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > class wstring_guid : public basic_string_guid<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >
{ {
public: public:
/// \name Initializing string using template in memory /// \name Initializing string using template in memory

View File

@ -32,13 +32,13 @@
namespace winstd namespace winstd
{ {
class WINSTD_API cert_context; class cert_context;
class WINSTD_API cert_chain_context; class cert_chain_context;
class WINSTD_API cert_store; class cert_store;
class WINSTD_API crypt_prov; class crypt_prov;
class WINSTD_API crypt_hash; class crypt_hash;
class WINSTD_API crypt_key; class crypt_key;
class WINSTD_API data_blob; class data_blob;
} }
/// \addtogroup WinStdCryptoAPI /// \addtogroup WinStdCryptoAPI
@ -120,7 +120,7 @@ namespace winstd
/// ///
/// PCCERT_CONTEXT wrapper class /// PCCERT_CONTEXT wrapper class
/// ///
class WINSTD_API cert_context : public dplhandle<PCCERT_CONTEXT, NULL> class cert_context : public dplhandle<PCCERT_CONTEXT, NULL>
{ {
DPLHANDLE_IMPL(cert_context, NULL) DPLHANDLE_IMPL(cert_context, NULL)
@ -260,7 +260,7 @@ namespace winstd
/// ///
/// PCCERT_CHAIN_CONTEXT wrapper class /// PCCERT_CHAIN_CONTEXT wrapper class
/// ///
class WINSTD_API cert_chain_context : public dplhandle<PCCERT_CHAIN_CONTEXT, NULL> class cert_chain_context : public dplhandle<PCCERT_CHAIN_CONTEXT, NULL>
{ {
DPLHANDLE_IMPL(cert_chain_context, NULL) DPLHANDLE_IMPL(cert_chain_context, NULL)
@ -315,7 +315,7 @@ namespace winstd
/// ///
/// HCERTSTORE wrapper class /// HCERTSTORE wrapper class
/// ///
class WINSTD_API cert_store : public handle<HCERTSTORE, NULL> class cert_store : public handle<HCERTSTORE, NULL>
{ {
HANDLE_IMPL(cert_store, NULL) HANDLE_IMPL(cert_store, NULL)
@ -378,7 +378,7 @@ namespace winstd
/// ///
/// HCRYPTPROV wrapper class /// HCRYPTPROV wrapper class
/// ///
class WINSTD_API crypt_prov : public handle<HCRYPTPROV, NULL> class crypt_prov : public handle<HCRYPTPROV, NULL>
{ {
HANDLE_IMPL(crypt_prov, NULL) HANDLE_IMPL(crypt_prov, NULL)
@ -422,7 +422,7 @@ namespace winstd
/// ///
/// HCRYPTHASH wrapper class /// HCRYPTHASH wrapper class
/// ///
class WINSTD_API crypt_hash : public dplhandle<HCRYPTHASH, NULL> class crypt_hash : public dplhandle<HCRYPTHASH, NULL>
{ {
DPLHANDLE_IMPL(crypt_hash, NULL) DPLHANDLE_IMPL(crypt_hash, NULL)
@ -477,7 +477,7 @@ namespace winstd
/// ///
/// HCRYPTKEY wrapper class /// HCRYPTKEY wrapper class
/// ///
class WINSTD_API crypt_key : public dplhandle<HCRYPTKEY, NULL> class crypt_key : public dplhandle<HCRYPTKEY, NULL>
{ {
DPLHANDLE_IMPL(crypt_key, NULL) DPLHANDLE_IMPL(crypt_key, NULL)
@ -584,7 +584,7 @@ namespace winstd
/// ///
#pragma warning(push) #pragma warning(push)
#pragma warning(disable: 26432) // Copy constructor and assignment operator are also present, but not detected by code analysis as they are using base type source object reference. #pragma warning(disable: 26432) // Copy constructor and assignment operator are also present, but not detected by code analysis as they are using base type source object reference.
class WINSTD_API data_blob : public DATA_BLOB class data_blob : public DATA_BLOB
{ {
public: public:
/// ///

View File

@ -34,15 +34,15 @@
namespace winstd namespace winstd
{ {
enum class eap_type_t : unsigned char; enum class eap_type_t : unsigned char;
struct WINSTD_API EapHostPeerFreeMemory_delete; struct EapHostPeerFreeMemory_delete;
struct WINSTD_API EapHostPeerFreeRuntimeMemory_delete; struct EapHostPeerFreeRuntimeMemory_delete;
struct WINSTD_API EapHostPeerFreeErrorMemory_delete; struct EapHostPeerFreeErrorMemory_delete;
struct WINSTD_API EapHostPeerFreeEapError_delete; struct EapHostPeerFreeEapError_delete;
class WINSTD_API WINSTD_NOVTABLE eap_attr; class __declspec(novtable) eap_attr;
class WINSTD_API WINSTD_NOVTABLE eap_method_prop; class __declspec(novtable) eap_method_prop;
class WINSTD_API eap_packet; class eap_packet;
class WINSTD_API WINSTD_NOVTABLE eap_method_info_array; class __declspec(novtable) eap_method_info_array;
class WINSTD_API eap_runtime_error; class eap_runtime_error;
/// \addtogroup WinStdEAPAPI /// \addtogroup WinStdEAPAPI
/// @{ /// @{
@ -50,22 +50,22 @@ namespace winstd
/// ///
/// EapHost BLOB wrapper class /// EapHost BLOB wrapper class
/// ///
typedef std::unique_ptr<BYTE[], EapHostPeerFreeMemory_delete> WINSTD_API eap_blob; typedef std::unique_ptr<BYTE[], EapHostPeerFreeMemory_delete> eap_blob;
/// ///
/// EapHost BLOB wrapper class /// EapHost BLOB wrapper class
/// ///
typedef std::unique_ptr<BYTE[], EapHostPeerFreeRuntimeMemory_delete> WINSTD_API eap_blob_runtime; typedef std::unique_ptr<BYTE[], EapHostPeerFreeRuntimeMemory_delete> eap_blob_runtime;
/// ///
/// EAP_ERROR wrapper class /// EAP_ERROR wrapper class
/// ///
typedef std::unique_ptr<EAP_ERROR, EapHostPeerFreeErrorMemory_delete> WINSTD_API eap_error; typedef std::unique_ptr<EAP_ERROR, EapHostPeerFreeErrorMemory_delete> eap_error;
/// ///
/// EAP_ERROR wrapper class /// EAP_ERROR wrapper class
/// ///
typedef std::unique_ptr<EAP_ERROR, EapHostPeerFreeEapError_delete> WINSTD_API eap_error_runtime; typedef std::unique_ptr<EAP_ERROR, EapHostPeerFreeEapError_delete> eap_error_runtime;
/// @} /// @}
} }
@ -150,7 +150,7 @@ namespace winstd
/// ///
/// Deleter for unique_ptr using EapHostPeerFreeMemory /// Deleter for unique_ptr using EapHostPeerFreeMemory
/// ///
struct WINSTD_API EapHostPeerFreeMemory_delete struct EapHostPeerFreeMemory_delete
{ {
/// ///
/// Default constructor /// Default constructor
@ -173,7 +173,7 @@ namespace winstd
/// ///
/// Deleter for unique_ptr using EapHostPeerFreeRuntimeMemory /// Deleter for unique_ptr using EapHostPeerFreeRuntimeMemory
/// ///
struct WINSTD_API EapHostPeerFreeRuntimeMemory_delete struct EapHostPeerFreeRuntimeMemory_delete
{ {
/// ///
/// Default constructor /// Default constructor
@ -194,7 +194,7 @@ namespace winstd
/// ///
/// Deleter for unique_ptr to EAP_ERROR using EapHostPeerFreeErrorMemory /// Deleter for unique_ptr to EAP_ERROR using EapHostPeerFreeErrorMemory
/// ///
struct WINSTD_API EapHostPeerFreeErrorMemory_delete struct EapHostPeerFreeErrorMemory_delete
{ {
/// ///
/// Default constructor /// Default constructor
@ -216,7 +216,7 @@ namespace winstd
/// ///
/// Deleter for unique_ptr to EAP_ERROR using EapHostPeerFreeEapError /// Deleter for unique_ptr to EAP_ERROR using EapHostPeerFreeEapError
/// ///
struct WINSTD_API EapHostPeerFreeEapError_delete struct EapHostPeerFreeEapError_delete
{ {
/// ///
/// Default constructor /// Default constructor
@ -240,7 +240,7 @@ namespace winstd
/// ///
#pragma warning(push) #pragma warning(push)
#pragma warning(disable: 26432) // Copy constructor and assignment operator are also present, but not detected by code analysis as they are using base type source object reference. #pragma warning(disable: 26432) // Copy constructor and assignment operator are also present, but not detected by code analysis as they are using base type source object reference.
class WINSTD_API WINSTD_NOVTABLE eap_attr : public EAP_ATTRIBUTE class __declspec(novtable) eap_attr : public EAP_ATTRIBUTE
{ {
public: public:
/// ///
@ -349,7 +349,7 @@ namespace winstd
/// ///
/// EAP_METHOD_PROPERTY wrapper class /// EAP_METHOD_PROPERTY wrapper class
/// ///
class WINSTD_API WINSTD_NOVTABLE eap_method_prop : public EAP_METHOD_PROPERTY class __declspec(novtable) eap_method_prop : public EAP_METHOD_PROPERTY
{ {
public: public:
/// ///
@ -401,7 +401,7 @@ namespace winstd
/// ///
/// EapPacket wrapper class /// EapPacket wrapper class
/// ///
class WINSTD_API eap_packet : public dplhandle<EapPacket*, NULL> class eap_packet : public dplhandle<EapPacket*, NULL>
{ {
DPLHANDLE_IMPL(eap_packet, NULL) DPLHANDLE_IMPL(eap_packet, NULL)
@ -469,7 +469,7 @@ namespace winstd
/// ///
/// EAP_METHOD_INFO_ARRAY wrapper class /// EAP_METHOD_INFO_ARRAY wrapper class
/// ///
class WINSTD_API WINSTD_NOVTABLE eap_method_info_array : public EAP_METHOD_INFO_ARRAY class __declspec(novtable) eap_method_info_array : public EAP_METHOD_INFO_ARRAY
{ {
WINSTD_NONCOPYABLE(eap_method_info_array) WINSTD_NONCOPYABLE(eap_method_info_array)
@ -539,7 +539,7 @@ namespace winstd
/// ///
/// \sa [EAP_ERROR structure](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363699.aspx) /// \sa [EAP_ERROR structure](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363699.aspx)
/// ///
class WINSTD_API eap_runtime_error : public win_runtime_error class eap_runtime_error : public win_runtime_error
{ {
public: public:
/// ///

View File

@ -37,13 +37,13 @@
namespace winstd namespace winstd
{ {
class WINSTD_API WINSTD_NOVTABLE event_data; class __declspec(novtable) event_data;
class WINSTD_API WINSTD_NOVTABLE event_rec; class __declspec(novtable) event_rec;
class WINSTD_API event_provider; class event_provider;
class WINSTD_API event_session; class event_session;
class WINSTD_API event_trace; class event_trace;
class WINSTD_API event_trace_enabler; class event_trace_enabler;
class WINSTD_API event_fn_auto; class event_fn_auto;
template<class T> class event_fn_auto_ret; template<class T> class event_fn_auto_ret;
} }
@ -84,7 +84,7 @@ namespace winstd
/// ///
/// EVENT_DATA_DESCRIPTOR wrapper /// EVENT_DATA_DESCRIPTOR wrapper
/// ///
class WINSTD_API WINSTD_NOVTABLE event_data : public EVENT_DATA_DESCRIPTOR class __declspec(novtable) event_data : public EVENT_DATA_DESCRIPTOR
{ {
public: public:
/// ///
@ -276,7 +276,7 @@ namespace winstd
/// ///
/// EVENT_RECORD wrapper /// EVENT_RECORD wrapper
/// ///
class WINSTD_API WINSTD_NOVTABLE event_rec : public EVENT_RECORD class __declspec(novtable) event_rec : public EVENT_RECORD
{ {
public: public:
/// ///
@ -418,7 +418,7 @@ namespace winstd
/// ///
/// ETW event provider /// ETW event provider
/// ///
class WINSTD_API event_provider : public handle<REGHANDLE, NULL> class event_provider : public handle<REGHANDLE, NULL>
{ {
HANDLE_IMPL(event_provider, NULL) HANDLE_IMPL(event_provider, NULL)
@ -636,7 +636,7 @@ namespace winstd
/// ///
/// ETW session /// ETW session
/// ///
class WINSTD_API event_session : public handle<TRACEHANDLE, 0> class event_session : public handle<TRACEHANDLE, 0>
{ {
WINSTD_NONCOPYABLE(event_session) WINSTD_NONCOPYABLE(event_session)
@ -823,7 +823,7 @@ namespace winstd
/// ///
/// ETW trace /// ETW trace
/// ///
class WINSTD_API event_trace : public handle<TRACEHANDLE, INVALID_PROCESSTRACE_HANDLE> class event_trace : public handle<TRACEHANDLE, INVALID_PROCESSTRACE_HANDLE>
{ {
HANDLE_IMPL(event_trace, INVALID_PROCESSTRACE_HANDLE) HANDLE_IMPL(event_trace, INVALID_PROCESSTRACE_HANDLE)
@ -868,7 +868,7 @@ namespace winstd
/// ///
/// Helper class to enable event provider in constructor and disables it in destructor /// Helper class to enable event provider in constructor and disables it in destructor
/// ///
class WINSTD_API event_trace_enabler class event_trace_enabler
{ {
public: public:
/// ///
@ -978,7 +978,7 @@ namespace winstd
/// ///
/// It writes one string event at creation and another at destruction. /// It writes one string event at creation and another at destruction.
/// ///
class WINSTD_API event_fn_auto class event_fn_auto
{ {
public: public:
/// ///

View File

@ -30,8 +30,8 @@
namespace winstd namespace winstd
{ {
class WINSTD_API hex_enc; class hex_enc;
class WINSTD_API hex_dec; class hex_dec;
} }
#pragma once #pragma once
@ -45,7 +45,7 @@ namespace winstd
/// ///
/// Hexadecimal encoding session /// Hexadecimal encoding session
/// ///
class WINSTD_API hex_enc class hex_enc
{ {
public: public:
/// ///
@ -101,7 +101,7 @@ namespace winstd
/// ///
/// Hexadecimal decoding session /// Hexadecimal decoding session
/// ///
class WINSTD_API hex_dec class hex_dec
{ {
public: public:
/// ///

View File

@ -31,10 +31,10 @@
namespace winstd namespace winstd
{ {
class WINSTD_API sec_credentials; class sec_credentials;
class WINSTD_API sec_context; class sec_context;
class WINSTD_API sec_buffer_desc; class sec_buffer_desc;
class WINSTD_API sec_runtime_error; class sec_runtime_error;
} }
/// \addtogroup WinStdSecurityAPI /// \addtogroup WinStdSecurityAPI
@ -63,7 +63,7 @@ namespace winstd
/// ///
/// PCredHandle wrapper class /// PCredHandle wrapper class
/// ///
class WINSTD_API sec_credentials : public handle<PCredHandle, NULL> class sec_credentials : public handle<PCredHandle, NULL>
{ {
WINSTD_NONCOPYABLE(sec_credentials) WINSTD_NONCOPYABLE(sec_credentials)
@ -165,7 +165,7 @@ namespace winstd
/// ///
/// PCtxtHandle wrapper class /// PCtxtHandle wrapper class
/// ///
class WINSTD_API sec_context : public handle<PCtxtHandle, NULL> class sec_context : public handle<PCtxtHandle, NULL>
{ {
public: public:
/// ///
@ -281,7 +281,7 @@ namespace winstd
/// ///
/// SecBufferDesc wrapper class /// SecBufferDesc wrapper class
/// ///
class WINSTD_API sec_buffer_desc : public SecBufferDesc class sec_buffer_desc : public SecBufferDesc
{ {
public: public:
/// ///
@ -315,7 +315,7 @@ namespace winstd
/// ///
/// \note Must be defined as derived class from num_runtime_error<> to allow correct type info for dynamic typecasting and prevent folding with other derivates of num_runtime_error<>. /// \note Must be defined as derived class from num_runtime_error<> to allow correct type info for dynamic typecasting and prevent folding with other derivates of num_runtime_error<>.
/// ///
class WINSTD_API sec_runtime_error : public num_runtime_error<SECURITY_STATUS> class sec_runtime_error : public num_runtime_error<SECURITY_STATUS>
{ {
public: public:
/// ///

View File

@ -27,8 +27,8 @@
namespace winstd namespace winstd
{ {
class WINSTD_API setup_device_info_list; class setup_device_info_list;
class WINSTD_API setup_driver_info_list_builder; class setup_driver_info_list_builder;
} }
@ -45,7 +45,7 @@ namespace winstd
/// ///
/// HDEVINFO wrapper class /// HDEVINFO wrapper class
/// ///
class WINSTD_API setup_device_info_list : public handle<HDEVINFO, INVALID_HANDLE_VALUE> class setup_device_info_list : public handle<HDEVINFO, INVALID_HANDLE_VALUE>
{ {
HANDLE_IMPL(setup_device_info_list, INVALID_HANDLE_VALUE) HANDLE_IMPL(setup_device_info_list, INVALID_HANDLE_VALUE)
@ -119,7 +119,7 @@ namespace winstd
/// ///
/// Builds a list of drivers in constructor and deletes it in destructor /// Builds a list of drivers in constructor and deletes it in destructor
/// ///
class WINSTD_API setup_driver_info_list_builder class setup_driver_info_list_builder
{ {
WINSTD_NONCOPYABLE(setup_driver_info_list_builder) WINSTD_NONCOPYABLE(setup_driver_info_list_builder)
WINSTD_NONMOVABLE(setup_driver_info_list_builder) WINSTD_NONMOVABLE(setup_driver_info_list_builder)

View File

@ -36,7 +36,7 @@ extern DWORD (WINAPI *pfnWlanReasonCodeToString)(__in DWORD dwReasonCode, __in D
namespace winstd { namespace winstd {
template <class _Ty> struct WlanFreeMemory_delete; template <class _Ty> struct WlanFreeMemory_delete;
template <class _Ty> struct WlanFreeMemory_delete<_Ty[]>; template <class _Ty> struct WlanFreeMemory_delete<_Ty[]>;
class WINSTD_API wlan_handle; class wlan_handle;
} }
/// \addtogroup WinStdWLANAPI /// \addtogroup WinStdWLANAPI
@ -124,7 +124,7 @@ namespace winstd
/// ///
/// WLAN handle wrapper /// WLAN handle wrapper
/// ///
class WINSTD_API wlan_handle : public handle<HANDLE, NULL> class wlan_handle : public handle<HANDLE, NULL>
{ {
HANDLE_IMPL(wlan_handle, NULL) HANDLE_IMPL(wlan_handle, NULL)

View File

@ -32,21 +32,21 @@
namespace winstd namespace winstd
{ {
template<HANDLE INVALID> class WINSTD_API win_handle; template<HANDLE INVALID> class win_handle;
class WINSTD_API library; class library;
class WINSTD_API process; class process;
class WINSTD_API file; class file;
class WINSTD_API event; class event;
class WINSTD_API critical_section; class critical_section;
class WINSTD_API heap; class heap;
template <class _Ty> class heap_allocator; template <class _Ty> class heap_allocator;
class WINSTD_API actctx_activator; class actctx_activator;
class WINSTD_API user_impersonator; class user_impersonator;
class WINSTD_API console_ctrl_handler; class console_ctrl_handler;
class WINSTD_API vmemory; class vmemory;
class WINSTD_API reg_key; class reg_key;
class WINSTD_API security_id; class security_id;
class WINSTD_API process_information; class process_information;
} }
@ -111,7 +111,7 @@ template<class _Elem, class _Traits, class _Ax> inline VOID GuidToStringW(_In_ L
#endif #endif
/// @copydoc StringToGuidW() /// @copydoc StringToGuidW()
_Success_(return) BOOL WINSTD_API StringToGuidA(_In_z_ LPCSTR lpszGuid, _Out_ LPGUID lpGuid, _Out_opt_ LPCSTR *lpszGuidEnd = NULL) noexcept; _Success_(return) BOOL StringToGuidA(_In_z_ LPCSTR lpszGuid, _Out_ LPGUID lpGuid, _Out_opt_ LPCSTR *lpszGuidEnd = NULL) noexcept;
/// ///
/// Parses string with GUID and stores it to GUID /// Parses string with GUID and stores it to GUID
@ -124,7 +124,7 @@ _Success_(return) BOOL WINSTD_API StringToGuidA(_In_z_ LPCSTR lpszGuid, _Out_ LP
/// - `TRUE` if GUID successfuly parsed; /// - `TRUE` if GUID successfuly parsed;
/// - `FALSE` otherwise. /// - `FALSE` otherwise.
/// ///
_Success_(return) BOOL WINSTD_API StringToGuidW(_In_z_ LPCWSTR lpszGuid, _Out_ LPGUID lpGuid, _Out_opt_ LPCWSTR *lpszGuidEnd = NULL) noexcept; _Success_(return) BOOL StringToGuidW(_In_z_ LPCWSTR lpszGuid, _Out_ LPGUID lpGuid, _Out_opt_ LPCWSTR *lpszGuidEnd = NULL) noexcept;
/// @copydoc StringToGuidW() /// @copydoc StringToGuidW()
#ifdef _UNICODE #ifdef _UNICODE
#define StringToGuid StringToGuidW #define StringToGuid StringToGuidW
@ -387,7 +387,7 @@ namespace winstd
/// Windows HANDLE wrapper class /// Windows HANDLE wrapper class
/// ///
template<HANDLE INVALID> template<HANDLE INVALID>
class WINSTD_API win_handle : public handle<HANDLE, INVALID> class win_handle : public handle<HANDLE, INVALID>
{ {
HANDLE_IMPL(win_handle, INVALID) HANDLE_IMPL(win_handle, INVALID)
@ -419,7 +419,7 @@ namespace winstd
/// ///
/// Module handle wrapper /// Module handle wrapper
/// ///
class WINSTD_API library : public handle<HMODULE, NULL> class library : public handle<HMODULE, NULL>
{ {
HANDLE_IMPL(library, NULL) HANDLE_IMPL(library, NULL)
@ -463,7 +463,7 @@ namespace winstd
/// ///
/// Process handle wrapper /// Process handle wrapper
/// ///
class WINSTD_API process : public win_handle<NULL> class process : public win_handle<NULL>
{ {
public: public:
/// ///
@ -490,7 +490,7 @@ namespace winstd
/// ///
/// File handle wrapper /// File handle wrapper
/// ///
class WINSTD_API file : public win_handle<INVALID_HANDLE_VALUE> class file : public win_handle<INVALID_HANDLE_VALUE>
{ {
public: public:
/// ///
@ -517,7 +517,7 @@ namespace winstd
/// ///
/// Event handle wrapper /// Event handle wrapper
/// ///
class WINSTD_API event : public win_handle<NULL> class event : public win_handle<NULL>
{ {
public: public:
/// ///
@ -563,7 +563,7 @@ namespace winstd
/// ///
/// Critical section wrapper /// Critical section wrapper
/// ///
class WINSTD_API critical_section class critical_section
{ {
WINSTD_NONCOPYABLE(critical_section) WINSTD_NONCOPYABLE(critical_section)
WINSTD_NONMOVABLE(critical_section) WINSTD_NONMOVABLE(critical_section)
@ -601,7 +601,7 @@ namespace winstd
/// ///
/// Find-file handle wrapper /// Find-file handle wrapper
/// ///
class WINSTD_API find_file : public handle<HANDLE, INVALID_HANDLE_VALUE> class find_file : public handle<HANDLE, INVALID_HANDLE_VALUE>
{ {
HANDLE_IMPL(find_file, INVALID_HANDLE_VALUE) HANDLE_IMPL(find_file, INVALID_HANDLE_VALUE)
@ -645,7 +645,7 @@ namespace winstd
/// ///
/// Heap handle wrapper /// Heap handle wrapper
/// ///
class WINSTD_API heap : public handle<HANDLE, NULL> class heap : public handle<HANDLE, NULL>
{ {
HANDLE_IMPL(heap, NULL) HANDLE_IMPL(heap, NULL)
@ -815,7 +815,7 @@ namespace winstd
/// ///
/// Activates given activation context in constructor and deactivates it in destructor /// Activates given activation context in constructor and deactivates it in destructor
/// ///
class WINSTD_API actctx_activator class actctx_activator
{ {
WINSTD_NONCOPYABLE(actctx_activator) WINSTD_NONCOPYABLE(actctx_activator)
WINSTD_NONMOVABLE(actctx_activator) WINSTD_NONMOVABLE(actctx_activator)
@ -845,7 +845,7 @@ namespace winstd
/// ///
/// Lets the calling thread impersonate the security context of a logged-on user /// Lets the calling thread impersonate the security context of a logged-on user
/// ///
class WINSTD_API user_impersonator class user_impersonator
{ {
WINSTD_NONCOPYABLE(user_impersonator) WINSTD_NONCOPYABLE(user_impersonator)
WINSTD_NONMOVABLE(user_impersonator) WINSTD_NONMOVABLE(user_impersonator)
@ -875,7 +875,7 @@ namespace winstd
/// ///
/// Console control handler stack management /// Console control handler stack management
/// ///
class WINSTD_API console_ctrl_handler class console_ctrl_handler
{ {
WINSTD_NONCOPYABLE(console_ctrl_handler) WINSTD_NONCOPYABLE(console_ctrl_handler)
WINSTD_NONMOVABLE(console_ctrl_handler) WINSTD_NONMOVABLE(console_ctrl_handler)
@ -906,7 +906,7 @@ namespace winstd
/// ///
/// Memory in virtual address space of a process handle wrapper /// Memory in virtual address space of a process handle wrapper
/// ///
class WINSTD_API vmemory : public handle<LPVOID, NULL> class vmemory : public handle<LPVOID, NULL>
{ {
WINSTD_NONCOPYABLE(vmemory) WINSTD_NONCOPYABLE(vmemory)
@ -1018,7 +1018,7 @@ namespace winstd
/// ///
/// Registry wrapper class /// Registry wrapper class
/// ///
class WINSTD_API reg_key : public handle<HKEY, NULL> class reg_key : public handle<HKEY, NULL>
{ {
HANDLE_IMPL(reg_key, NULL) HANDLE_IMPL(reg_key, NULL)
@ -1109,7 +1109,7 @@ namespace winstd
/// ///
/// SID wrapper class /// SID wrapper class
/// ///
class WINSTD_API security_id : public handle<PSID, NULL> class security_id : public handle<PSID, NULL>
{ {
HANDLE_IMPL(security_id, NULL) HANDLE_IMPL(security_id, NULL)
@ -1134,7 +1134,7 @@ namespace winstd
/// ///
/// PROCESS_INFORMATION struct wrapper /// PROCESS_INFORMATION struct wrapper
/// ///
class WINSTD_API process_information : public PROCESS_INFORMATION class process_information : public PROCESS_INFORMATION
{ {
WINSTD_NONCOPYABLE(process_information) WINSTD_NONCOPYABLE(process_information)
WINSTD_NONMOVABLE(process_information) WINSTD_NONMOVABLE(process_information)

View File

@ -27,9 +27,9 @@
namespace winstd namespace winstd
{ {
class WINSTD_API ws2_runtime_error; class ws2_runtime_error;
#if (NTDDI_VERSION >= NTDDI_WINXPSP2) || (_WIN32_WINNT >= 0x0502) #if (NTDDI_VERSION >= NTDDI_WINXPSP2) || (_WIN32_WINNT >= 0x0502)
class WINSTD_API addrinfo; class addrinfo;
#endif #endif
} }
@ -48,7 +48,7 @@ namespace winstd
/// ///
/// WinSock2 runtime error /// WinSock2 runtime error
/// ///
class WINSTD_API ws2_runtime_error : public num_runtime_error<int> class ws2_runtime_error : public num_runtime_error<int>
{ {
public: public:
/// ///
@ -121,7 +121,7 @@ namespace winstd
/// ///
/// SID wrapper class /// SID wrapper class
/// ///
class WINSTD_API addrinfo : public handle<PADDRINFOT, NULL> class addrinfo : public handle<PADDRINFOT, NULL>
{ {
HANDLE_IMPL(addrinfo, NULL) HANDLE_IMPL(addrinfo, NULL)

View File

@ -31,7 +31,7 @@
namespace winstd namespace winstd
{ {
class WINSTD_API wintrust; class wintrust;
} }
#pragma once #pragma once
@ -45,7 +45,7 @@ namespace winstd
/// ///
/// WinTrust engine wrapper class /// WinTrust engine wrapper class
/// ///
class WINSTD_API wintrust class wintrust
{ {
WINSTD_NONCOPYABLE(wintrust) WINSTD_NONCOPYABLE(wintrust)
WINSTD_NONMOVABLE(wintrust) WINSTD_NONMOVABLE(wintrust)

View File

@ -25,7 +25,7 @@
// StringToGuidA // StringToGuidA
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
_Success_(return) BOOL WINSTD_API StringToGuidA(_In_z_ LPCSTR lpszGuid, _Out_ LPGUID lpGuid, _Out_opt_ LPCSTR *lpszGuidEnd) noexcept _Success_(return) BOOL StringToGuidA(_In_z_ LPCSTR lpszGuid, _Out_ LPGUID lpGuid, _Out_opt_ LPCSTR *lpszGuidEnd) noexcept
{ {
GUID g; GUID g;
LPSTR lpszEnd; LPSTR lpszEnd;
@ -88,7 +88,7 @@ _Success_(return) BOOL WINSTD_API StringToGuidA(_In_z_ LPCSTR lpszGuid, _Out_ LP
} }
_Success_(return) BOOL WINSTD_API StringToGuidW(_In_z_ LPCWSTR lpszGuid, _Out_ LPGUID lpGuid, _Out_opt_ LPCWSTR *lpszGuidEnd) noexcept _Success_(return) BOOL StringToGuidW(_In_z_ LPCWSTR lpszGuid, _Out_ LPGUID lpGuid, _Out_opt_ LPCWSTR *lpszGuidEnd) noexcept
{ {
GUID g; GUID g;
LPWSTR lpszEnd; LPWSTR lpszEnd;