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

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

#include <comstl_interface_cast.h>

Inheritance diagram for interface_cast_noaddref:

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

Public Types

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

typedef parent_class_type::interface_pointer_type interface_pointer_type
 The interface pointer type.

typedef parent_class_type::interface_type interface_type
 The interface type.


Public Methods

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

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

protected_interface_pointer_type operator-> () const
 Access the members of the interface.


Protected Types

typedef noaddref_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 = throw_bad_interface_cast_exception>
class comstl::interface_cast_noaddref< I, X >

Interface cast that does not add a net reference count.

This class provides a cast between interface pointers, but does not add a net reference count

Parameters:
I  The interface pointer type
X  The exception type


Member Typedef Documentation

typedef interface_cast_noaddref<I, X> class_type
 

The type of the current parameterisation.

Reimplemented from interface_cast_base< I, noaddref_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, noaddref_release< I >, X >.

typedef parent_class_type::interface_type interface_type
 

The interface type.

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

typedef noaddref_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_noaddref J &    j [inline, explicit]
 

Constructor that attempts the speculative cast.

interface_cast_noaddref 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.

protected_interface_pointer_type operator->   const [inline]
 

Access the members of the interface.


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

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