STLSoft - ... Robust, Lightweight, Cross-platform, Template Software ... ATLSTL - Template Software for the Active Template Library COMSTL - The Standard Template Library meets the Component Object Model .netSTL - Standard Template Library meets the Microsoft.NET Common Language Runtime InetSTL - The Standard Template Library meets WinInet MFCSTL - Template Software for the Microsoft Foundation Classes UNIXSTL - Template Software for the UNIX Operating System WinSTL - where the Standard Template Library meets the Win32 API

Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

interface_cast_addref Class Template Reference
[Interface Library]

Interface cast that does add a net reference count. More...

#include <comstl_interface_cast.h>

Inheritance diagram for interface_cast_addref:

interface_cast_base< I, addref_release< I >, X > List of all members.

Public Types

typedef interface_cast_addref<
I, X > 
class_type
 The type of the current parameterisation.

typedef parent_class_type::interface_pointer_type interface_pointer_type
 The interface pointer type.


Public Methods

template<typename J>  interface_cast_addref (J j)
 Constructor that attempts the speculative cast.

 interface_cast_addref (interface_pointer_type pi)
 Constructor that directly casts (without calling QueryInterface()).

 operator interface_pointer_type ()
 A pointer to the acquired interface.


Protected Types

typedef interface_pointer_traits<
I >::interface_type 
interface_type
 The interface type.

typedef addref_release< I > release_type
 The release type.

typedef X exception_policy_type
 The exception type.

typedef exception_policy_type::thrown_type thrown_type
 The thrown type.


Protected Methods

interface_pointer_type const & get_pointer_ ()
 Returns a non-mutating reference to the acquired interface pointer.

interface_pointer_type get_pointer_ () const
 Returns a copy of the acquired interface pointer.


Static Protected Methods

interface_pointer_type do_cast (LPUNKNOWN punk) comstl_throw_1(thrown_type)
 Perform the cast, throwing the exception_policy_type's thrown_type if the requested interface cannot be acquired.


Detailed Description

template<typename I, typename X = ignore_interface_cast_exception>
class comstl::interface_cast_addref< I, X >

Interface cast that does add a net reference count.

This class provides a cast between interface pointers, that adds a net reference count

Parameters:
I  The interface pointer type
X  The exception type, defaulted to ignore_interface_cast_exception


Member Typedef Documentation

typedef interface_cast_addref<I, X> class_type
 

The type of the current parameterisation.

Reimplemented from interface_cast_base< I, addref_release< I >, X >.

typedef X exception_policy_type [inherited]
 

The exception type.

typedef parent_class_type::interface_pointer_type interface_pointer_type
 

The interface pointer type.

Reimplemented from interface_cast_base< I, addref_release< I >, X >.

typedef interface_pointer_traits<I>::interface_type interface_type [inherited]
 

The interface type.

typedef addref_release< I > release_type [inherited]
 

The release type.

typedef exception_policy_type::thrown_type thrown_type [inherited]
 

The thrown type.


Constructor & Destructor Documentation

interface_cast_addref   j [inline, explicit]
 

Constructor that attempts the speculative cast.

interface_cast_addref interface_pointer_type    pi [inline, explicit]
 

Constructor that directly casts (without calling QueryInterface()).


Member Function Documentation

interface_pointer_type do_cast LPUNKNOWN    punk [inline, static, protected, inherited]
 

Perform the cast, throwing the exception_policy_type's thrown_type if the requested interface cannot be acquired.

Parameters:
punk  The interface pointer to cast
Returns:
The converted interface pointer

interface_pointer_type get_pointer_   const [inline, protected, inherited]
 

Returns a copy of the acquired interface pointer.

interface_pointer_type const& get_pointer_   [inline, protected, inherited]
 

Returns a non-mutating reference to the acquired interface pointer.

operator interface_pointer_type   [inline]
 

A pointer to the acquired interface.


The documentation for this class was generated from the following file:

STLSoft Libraries documentation © Synesis Software Pty Ltd, 2001-2004