* U K I Y A H O N P O *
Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura,
che la diritta via era smarrita.
リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
浮子屋商店もよろしく。

C#コード断片/共通/WM_COPYDATAを受ける のバックアップの現在との差分(No.1)


WM_COPYDATAを受ける

[StructLayout(LayoutKind.Sequential)]
	private struct COPYDATASTRUCT {
	public IntPtr dwData;
	public int cbData;
	public IntPtr lpData;
}
private const int WM_COPYDATA = 0x4A;

protected override void WndProc(ref Message m) {
	if(m.Msg==WM_COPYDATA){
		COPYDATASTRUCT cds = new COPYDATASTRUCT();
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
#spanend
#spanadd
[StructLayout(LayoutKind.Sequential)]
#spanend
#spanadd
private struct COPYDATASTRUCT {
#spanend
#spanadd
    public IntPtr dwData;
#spanend
#spanadd
    public int cbData;
#spanend
#spanadd
    public IntPtr lpData;
#spanend
#spanadd
}
#spanend
#spanadd
private const int WM_COPYDATA = 0x4A;
#spanend
#spanadd
 
#spanend
#spanadd
protected override void WndProc(ref Message m) {
#spanend
#spanadd
    if(m.Msg==WM_COPYDATA){
#spanend
#spanadd
        COPYDATASTRUCT cds = new COPYDATASTRUCT();
#spanend
         cds = (COPYDATASTRUCT) Marshal.PtrToStructure(m.LParam, typeof(COPYDATASTRUCT));
         if (cds.cbData > 0) {
             byte[] data = new byte[cds.cbData];                
#spanadd
        if (cds.cbData > 0) {
#spanend
#spanadd
            byte[] data = new byte[cds.cbData];            
#spanend
             Marshal.Copy(cds.lpData, data, 0, cds.cbData);
             //あとは data に COPYDATA の内容が入ってるので適宜処理
         }
         m.Result=(IntPtr)1;
     }
     base.WndProc (ref m);
 }
#spanadd
        }
#spanend
#spanadd
        m.Result=(IntPtr)1;
#spanend
#spanadd
    }
#spanend
#spanadd
    base.WndProc (ref m);
#spanend
#spanadd
}
#spanend
#spanadd

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White