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_base Class Template Reference
[Interface Library]

Base class for the interface cast classes. More...

#include <comstl_interface_cast.h>

List of all members.

Public Types

typedef I interface_pointer_type
 The interface pointer type.

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

typedef R release_type
 The release type.

typedef X exception_policy_type
 The exception type.

typedef exception_policy_type::thrown_type thrown_type
 The thrown type.

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


Protected Methods

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

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

 ~interface_cast_base () comstl_throw_0()
 Releases the acquired interface pointer according to the release_type policy.

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 R, typename X>
class comstl::interface_cast_base< I, R, X >

Base class for the interface cast classes.

This class serves only as a base, and cannot be used in isolation

Parameters:
I  The interface pointer type
R  The release type
X  The exception type


Member Typedef Documentation

typedef interface_cast_base<I, R, X> class_type
 

The type of the current parameterisation.

Reimplemented in interface_cast_noaddref, interface_cast_addref, and interface_cast_test.

typedef X exception_policy_type
 

The exception type.

typedef I interface_pointer_type
 

The interface pointer type.

Reimplemented in interface_cast_noaddref, interface_cast_addref, and interface_cast_test.

typedef interface_pointer_traits<I>::interface_type interface_type
 

The interface type.

Reimplemented in interface_cast_noaddref, and interface_cast_test.

typedef R release_type
 

The release type.

typedef exception_policy_type::thrown_type thrown_type
 

The thrown type.


Constructor & Destructor Documentation

interface_cast_base J &    j [inline, explicit, protected]
 

Constructor that attempts the speculative cast.

interface_cast_base interface_pointer_type    pi [inline, explicit, protected]
 

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

~interface_cast_base   [inline, protected]
 

Releases the acquired interface pointer according to the release_type policy.


Member Function Documentation

interface_pointer_type do_cast LPUNKNOWN    punk [inline, static, protected]
 

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]
 

Returns a copy of the acquired interface pointer.

interface_pointer_type const& get_pointer_   [inline, protected]
 

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


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

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