跳转至

cf::COMHelper

Helper class for Windows COM operations. More...

#include <co_helper.hpp>

Public Types

Name
using std::function< cf::expected< ResourceBack, ErrorCode >()> ContextFunction
Type alias for COM operation function.

Public Functions

Name
cf::expected< ResourceBack, ErrorCode > RunComInterfacesOnce(ContextFunction f, DWORD coinitFlag =COINIT_APARTMENTTHREADED)
Executes a COM operation with single-threaded initialization.
cf::expected< ResourceBack, ErrorCode > RunComInterfacesMTA(ContextFunction f)
Executes a COM operation with multi-threaded initialization.

Detailed Description

template <typenameResourceBack ,
typenameErrorCode >
class cf::COMHelper;

Helper class for Windows COM operations.

Template Parameters:

  • ResourceBack Type of the resource returned by COM operations.
  • ErrorCode Type used for error reporting.

Provides static methods for managing COM initialization and executing COM operations with automatic cleanup.

Public Types Documentation

using ContextFunction

using cf::COMHelper< ResourceBack, ErrorCode >::ContextFunction =  std::function<cf::expected<ResourceBack, ErrorCode>()>;

Type alias for COM operation function.

Public Functions Documentation

function RunComInterfacesOnce

static inline cf::expected< ResourceBack, ErrorCode > RunComInterfacesOnce(
    ContextFunction f,
    DWORD coinitFlag =COINIT_APARTMENTTHREADED
)

Executes a COM operation with single-threaded initialization.

Parameters:

  • f Function to execute after COM initialization.
  • coinitFlag COM initialization flags. Default is COINIT_APARTMENTTHREADED.

Exceptions:

  • None (error reporting via expected type).

Return: Expected containing the operation result or an error code.

Initializes COM with the specified concurrency model, executes the provided function, and automatically cleans up COM.

function RunComInterfacesMTA

static inline cf::expected< ResourceBack, ErrorCode > RunComInterfacesMTA(
    ContextFunction f
)

Executes a COM operation with multi-threaded initialization.

Parameters:

  • f Function to execute after COM initialization.

Exceptions:

  • None (error reporting via expected type).

Return: Expected containing the operation result or an error code.

Initializes COM with COINIT_MULTITHREADED and executes the provided function with automatic cleanup.


Updated on 2026-03-09 at 10:14:00 +0000