TNB Library
公開型 | 公開メンバ関数 | 限定公開変数類 | 全メンバ一覧
CCopyDataMessage クラス

コピーデータメッセージクラス [詳解]

#include <TnbCopyDataMessage.h>

+ CCopyDataMessage の継承関係図

公開型

enum  EState { OPENNING , CONNECTING , CLOSED }
 状態 [詳解]
 

公開メンバ関数

virtual bool CanReceive (void) const
 [確認] 受信可能確認. [詳解]
 
virtual bool CanSend (void) const
 [確認] 送信可能確認. [詳解]
 
 CCopyDataMessage (void)
 コンストラクタ [詳解]
 
virtual EState Check (void) const
 [確認] チェック. [詳解]
 
virtual void Close (void)
 [処理] クローズ. [詳解]
 
virtual const TPropertyGetProperty (void) const
 [取得] 性能取得 [詳解]
 
virtual size_t GetReceivingDataSize (void) const
 [確認] 受信データ確認. [詳解]
 
virtual bool IsConnect (void) const
 [確認] 接続確認. [詳解]
 
virtual bool IsOpened (void) const
 [確認] オープン確認. [詳解]
 
virtual bool Open (void)
 [処理] オープン. [詳解]
 
virtual void Purge (void)
 [処理] パージ. [詳解]
 
virtual size_t Receive (size_t size, LPVOID _P)
 [処理] 受信. [詳解]
 
bool RelayEvent (UINT message, WPARAM wParam, LPARAM lParam, LRESULT &_result)
 [処理] イベント中継 [詳解]
 
virtual size_t Send (size_t size, LPCVOID P)
 [処理] 送信. [詳解]
 
void SetParamater (HWND hPartnerWnd, ULONG_PTR dwCookie=0)
 [設定] オープン設定 [詳解]
 
virtual bool SetReceiveTimeout (DWORD to)
 [設定] 受信待ち時間設定. [詳解]
 

限定公開変数類

ULONG_PTR m_dwCookie
 識別子 [詳解]
 
HWND m_hPartnerWnd
 送信先のウィンドウ [詳解]
 
CVectorT< BYTE > m_vbReceivedData
 受信したデータ。 [詳解]
 

詳解

コピーデータメッセージクラス

ICommunication を実装しています。
WM_COPYDATA メッセージを使い、ウィンドウ間でデータを送受信することが出来ます。
覚え書き
受信処理を機能させるために、親のWindowProc をフックし、 本クラスの RelayEvent() をコールする必要が有ります。
使用例

  LRESULT CDialupDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)        
  {
    LRESULT res;
    if ( m_copyDataMessage.RelayEvent(message, wParam, lParam, res) ) {
        return res;
    }
    return CDialog::WindowProc(message, wParam, lParam);
  }
 
必要ファイル
TnbCopyDataMessage.h
日付
08/03/24 新規作成
10/05/28 SetReceiveTimeout() を実装。

TnbCopyDataMessage.h51 行目に定義があります。

列挙型メンバ詳解

◆ EState

enum EState
inherited

状態

列挙値
OPENNING 

オープン状態

CONNECTING 

オープン&接続状態

CLOSED 

クローズ状態

TnbCommunication.h38 行目に定義があります。

構築子と解体子

◆ CCopyDataMessage()

CCopyDataMessage ( void  )

コンストラクタ

TnbCopyDataMessage.h65 行目に定義があります。

関数詳解

◆ CanReceive()

virtual bool CanReceive ( void  ) const
virtualinherited

[確認] 受信可能確認.

戻り値
true受信可能。
false不可能。

CCeUsbHid, CFileCommunicator, CVmRs232c, CUsbHidで再実装されています。

TnbCommunication.h119 行目に定義があります。

◆ CanSend()

virtual bool CanSend ( void  ) const
virtualinherited

[確認] 送信可能確認.

戻り値
true送信可能。
false不可能。

CCeUsbHid, CFileCommunicator, CVmRs232c, CUsbHidで再実装されています。

TnbCommunication.h112 行目に定義があります。

◆ Check()

virtual EState Check ( void  ) const
virtual

[確認] チェック.

状態を確認します。

戻り値
CONNECTINGオープン&接続状態
CLOSEDクローズ状態

ICommunicationを再実装しています。

TnbCopyDataMessage.h183 行目に定義があります。

◆ Close()

virtual void Close ( void  )
virtual

[処理] クローズ.

ICommunicationを実装しています。

TnbCopyDataMessage.h114 行目に定義があります。

◆ GetProperty()

virtual const TProperty & GetProperty ( void  ) const
virtual

[取得] 性能取得

戻り値
性能情報

ICommunicationを実装しています。

TnbCopyDataMessage.h73 行目に定義があります。

◆ GetReceivingDataSize()

virtual size_t GetReceivingDataSize ( void  ) const
virtual

[確認] 受信データ確認.

戻り値
受信可能データサイズ。

ICommunicationを再実装しています。

TnbCopyDataMessage.h172 行目に定義があります。

◆ IsConnect()

virtual bool IsConnect ( void  ) const
virtualinherited

[確認] 接続確認.

戻り値
true接続中。
false切断中。

CCeUsbHid, CVmRs232c, CRs232c, CUsbHidで再実装されています。

TnbCommunication.h105 行目に定義があります。

◆ IsOpened()

virtual bool IsOpened ( void  ) const
virtual

[確認] オープン確認.

戻り値
trueオープンしている。
false失敗。 SetParamater() で設定した送信先が存在しない場合、失敗します。

ICommunicationを実装しています。

TnbCopyDataMessage.h125 行目に定義があります。

◆ Open()

virtual bool Open ( void  )
virtual

[処理] オープン.

戻り値
true成功。
false失敗。 SetParamater() で設定した送信先が存在しない場合、失敗します。

ICommunicationを実装しています。

CCopyDataPostMessageで再実装されています。

TnbCopyDataMessage.h106 行目に定義があります。

◆ Purge()

virtual void Purge ( void  )
virtual

[処理] パージ.

ICommunicationを再実装しています。

TnbCopyDataMessage.h195 行目に定義があります。

◆ Receive()

virtual size_t Receive ( size_t  size,
LPVOID  _P 
)
virtual

[処理] 受信.

引数
[in]sizeサイズ。
[out]_Pデータ。size 分のメモリは確保しておく必要があります。
戻り値
受信データサイズ。

ICommunicationを実装しています。

TnbCopyDataMessage.h161 行目に定義があります。

◆ RelayEvent()

bool RelayEvent ( UINT  message,
WPARAM  wParam,
LPARAM  lParam,
LRESULT &  _result 
)

[処理] イベント中継

覚え書き
親ウィンドウの WindowProc() からメッセージを流してください。
引数
[in]message親ダイアログが受信したメッセージ
[in]wParam親ダイアログが受信したメッセージのWPARAM
[in]lParam親ダイアログが受信したメッセージのLPARAM
[out]_result本関数が true の際、リザルトとして使う値を格納する。
戻り値
true処理実施。 _result にリザルト値が格納されている。
false処理なしだった。

TnbCopyDataMessage.h210 行目に定義があります。

◆ Send()

virtual size_t Send ( size_t  size,
LPCVOID  P 
)
virtual

[処理] 送信.

引数
sizeサイズ。
Pデータ。
戻り値
INVALID_SIZEエラー。
上記以外送信データサイズ。

ICommunicationを実装しています。

CCopyDataPostMessageで再実装されています。

TnbCopyDataMessage.h137 行目に定義があります。

◆ SetParamater()

void SetParamater ( HWND  hPartnerWnd,
ULONG_PTR  dwCookie = 0 
)

[設定] オープン設定

引数
hPartnerWnd送信先ウィンドウハンドル
dwCookie識別子

TnbCopyDataMessage.h95 行目に定義があります。

◆ SetReceiveTimeout()

virtual bool SetReceiveTimeout ( DWORD  to)
virtual

[設定] 受信待ち時間設定.

Receive() 実行時、受信できるデータが無い時に待つ時間を設定できます。

覚え書き
成功すると、プロパティが変更される可能性があります。
引数
toタイムアウト時間 (ms)。
戻り値
常に false 。

ICommunicationを実装しています。

TnbCopyDataMessage.h85 行目に定義があります。

メンバ詳解

◆ m_dwCookie

ULONG_PTR m_dwCookie
protected

識別子

TnbCopyDataMessage.h58 行目に定義があります。

◆ m_hPartnerWnd

HWND m_hPartnerWnd
protected

送信先のウィンドウ

TnbCopyDataMessage.h57 行目に定義があります。

◆ m_vbReceivedData

CVectorT<BYTE> m_vbReceivedData
protected

受信したデータ。

TnbCopyDataMessage.h56 行目に定義があります。