COM Automation Library
[Libraries]


Detailed Description

Created: 13th January 2007 Updated: 13th January 2007.

This library contains components that assist with using and implementing COM Automation components.


Classes

class  copy_enumerator
 Modifiable, copying enumerator class template. More...
class  IDispatchImpl2
 Class template that enables the methods and properties exhibited through two IDispatch interfaces to be visible to scripting clients. More...
class  IDispatchImpl3
 Class template that enables the methods and properties exhibited through three IDispatch interfaces to be visible to scripting clients. More...
class  IDispatchImpl4
 Class template that enables the methods and properties exhibited through four IDispatch interfaces to be visible to scripting clients. More...

Functions

template<class C, typename T>
HRESULT get_MemberValue (C *const cls, T *ret, T C::*mem)
 Inline retrieval of member variable value.
template<class C, typename T>
HRESULT get_MemberValue (C *const cls, T **ret, T *C::*mem)
 Ghost overload to prevent use of get_MemberValue with pointer types.
template<class C>
HRESULT get_MemberValue (C *const cls, BSTR *ret, CComBSTR C::*mem)
 Inline retrieval of a CComBSTR member variable value.
template<class C>
HRESULT get_MemberValue (C *const cls, VARIANT *ret, CComVariant C::*mem)
 Inline retrieval of a VARIANT member variable value.
template<class C, typename T, typename T2>
HRESULT get_MemberValue (C *const cls, T *ret, T2(C::*pfn)() const)
 Inline retrieval of method value.
template<typename C, typename T>
HRESULT put_MemberValue (C *const cls, T const &newVal, T C::*mem)
 Inline assignment of a member variable value.
template<typename C>
HRESULT put_MemberValue (C *const cls, BSTR newVal, CComBSTR C::*mem)
 Inline assignment of a CComBSTR member variable value.
template<typename C>
HRESULT put_MemberValue (C *const cls, CComBSTR const &newVal, CComBSTR C::*mem)
 Inline assignment of a CComBSTR member variable value.
template<typename C>
HRESULT put_MemberValue (C *const cls, CComVariant const &newVal, CComVariant C::*mem)
 Inline assignment of a CComVariant member variable value.
template<typename T1, typename T2>
HRESULT get_ConstantValue (T1 *ret, T2 const &value)
 Shorthand for implementing methods that return a constant value.


Function Documentation

HRESULT atlstl::get_ConstantValue ( T1 *  ret,
T2 const &  value 
) [inline]

Shorthand for implementing methods that return a constant value.

This method is used to implement methods that return a value of a known constant, e.g.

STDMETHODIMP DatabaseFlags::get_OrderFields(BOOL *pVal)
{
    return atlstl::get_ConstantValue(pVal, openrj::ORJ_FLAG_ORDERFIELDS);
}

Parameters:
ret Pointer to the return value

HRESULT atlstl::get_MemberValue ( C *const   cls,
T *  ret,
T2(C::*)() const   pfn 
) [inline]

Inline retrieval of method value.

This function takes a pointer to a class, a pointer to a return value and a pointer to method of the given class, and retrieves the return value of the method into the return value.

Note:
This generic version should only be used for built-in types, or those which have value semantics.
Parameters:
cls Pointer to the class instance
ret Pointer to the return value
pfn Pointer to the method
Returns:
An HRESULT code indicating whether the access succeeded or failed
Return values:
E_POINTER ret was a null pointer
S_OK The value was retrieved successfully

HRESULT atlstl::get_MemberValue ( C *const   cls,
VARIANT *  ret,
CComVariant C::*  mem 
) [inline]

Inline retrieval of a VARIANT member variable value.

This function takes a pointer to a class, a pointer to a return value and a pointer to a VARIANT member of the given class, and retrieves the value of the member into the VARIANT return value.

Parameters:
cls Pointer to the class instance
ret Pointer to the VARIANT return value
mem Pointer to the VARIANT member variable
Returns:
An HRESULT code indicating whether the access succeeded or failed
Return values:
E_POINTER ret was a null pointer
DISP_E_ARRAYISLOCKED The variant contains an array that is locked.
DISP_E_BADVARTYPE The source and destination have an invalid variant type (usually uninitialized).
E_OUTOFMEMORY Memory could not be allocated for the copy.
E_INVALIDARG One of the arguments is invalid.
S_OK The value was retrieved successfully

HRESULT atlstl::get_MemberValue ( C *const   cls,
BSTR *  ret,
CComBSTR C::*  mem 
) [inline]

Inline retrieval of a CComBSTR member variable value.

This function takes a pointer to a class, a pointer to a return value and a pointer to a CComBSTR member of the given class, and retrieves the value of the member into the BSTR return value.

Parameters:
cls Pointer to the class instance
ret Pointer to the BSTR return value
mem Pointer to the CComBSTR member variable
Returns:
An HRESULT code indicating whether the access succeeded or failed
Return values:
E_POINTER ret was a null pointer
E_OUTOFMEMORY Not enough memory to create a copy for the returned value
S_OK The value was retrieved successfully

HRESULT atlstl::get_MemberValue ( C *const   cls,
T **  ret,
T *C::*  mem 
) [inline]

Ghost overload to prevent use of get_MemberValue with pointer types.

This version is overloaded to deal with pointer types, and is not implemented so as to prevent the generic version being used with such types.

Although this is inconvenient, there is no other way to prevent the use of free functions. In such circumstances, the shorthand of get_memberValue() must be eschewed for full and congnisant implementation.

Note:
This is deemed worth the inconvenience since using the generic version would like lead to code that violated COM's memory rules

HRESULT atlstl::get_MemberValue ( C *const   cls,
T *  ret,
T C::*  mem 
) [inline]

Inline retrieval of member variable value.

This function takes a pointer to a class, a pointer to a return value and a pointer to member of the given class, and retrieves the value of the member into the return value.

Note:
This generic version should only be used for built-in types, or those which have value semantics.
Parameters:
cls Pointer to the class instance
ret Pointer to the return value
mem Pointer to the member variable
Returns:
An HRESULT code indicating whether the access succeeded or failed
Return values:
E_POINTER ret was a null pointer
S_OK The value was retrieved successfully

HRESULT atlstl::put_MemberValue ( C *const   cls,
CComVariant const &  newVal,
CComVariant C::*  mem 
) [inline]

Inline assignment of a CComVariant member variable value.

This function takes a pointer to a class, a new CComVariant value and a pointer to CComVariant member of the given class, and assigns the new value to the member.

Parameters:
cls Pointer to the class instance
newVal The new CComVariant value
mem Pointer to the CComVariant member variable
Return values:
S_OK The value was assigned successfully

HRESULT atlstl::put_MemberValue ( C *const   cls,
CComBSTR const &  newVal,
CComBSTR C::*  mem 
) [inline]

Inline assignment of a CComBSTR member variable value.

This function takes a pointer to a class, a new CComBSTR value and a pointer to CComBSTR member of the given class, and assigns the new value to the member.

Parameters:
cls Pointer to the class instance
newVal The new CComBSTR value
mem Pointer to the CComBSTR member variable
Return values:
S_OK The value was assigned successfully

References atlstl::put_MemberValue().

HRESULT atlstl::put_MemberValue ( C *const   cls,
BSTR  newVal,
CComBSTR C::*  mem 
) [inline]

Inline assignment of a CComBSTR member variable value.

This function takes a pointer to a class, a new BSTR value and a pointer to CComBSTR member of the given class, and assigns the new value to the member.

Parameters:
cls Pointer to the class instance
newVal The new BSTR value
mem Pointer to the CComBSTR member variable
Return values:
S_OK The value was assigned successfully

HRESULT atlstl::put_MemberValue ( C *const   cls,
T const &  newVal,
T C::*  mem 
) [inline]

Inline assignment of a member variable value.

This function takes a pointer to a class, a new value and a pointer to member of the given class, and assigns the new value to the member.

Note:
This generic version should only be used for built-in types, or those which have value semantics.
Parameters:
cls Pointer to the class instance
newVal The new value
mem Pointer to the member variable
Return values:
S_OK The value was assigned successfully

Referenced by atlstl::put_MemberValue().


Generated on Thu Jun 10 08:58:17 2010 for STLSoft by  doxygen 1.5.6