Exemplo n.º 1
0
 protected virtual void OnRecvEvt(RecvInfEventArgs e)
 {
     if (RecvEvt != null)
     {
         RecvEvt(this, e);
     }
 }
Exemplo n.º 2
0
 // カスタマイズしたウィンドウ処理関数
 private int MyWndProc(int hWnd, int wMsg, int wParam, int lParam)
 {
     try
     {
         switch (wMsg)
         {
             case WM_COPYDATA:
                 string str = "";
                 COPYDATASTRUCT cds = new COPYDATASTRUCT();
                 cds = (COPYDATASTRUCT)Marshal.PtrToStructure((IntPtr)lParam, typeof(COPYDATASTRUCT));
                 if (cds.cbData > 0)
                 {
                     byte[] data = new byte[cds.cbData];
                     Marshal.Copy(cds.lpData, data, 0, cds.cbData);
                     Encoding sjisEnc = Encoding.GetEncoding("Shift_JIS");
                     str = sjisEnc.GetString(data).Replace("\0", "\r\n");
                 }
                 RecvInfEventArgs e = new RecvInfEventArgs();
                 e.RecvInf = str;
                 OnRecvEvt(e);
                 return 0;
             case WM_DESTROY:
                 PostMessage(hWnd, WM_QUIT, 0, 0);
                 break;
             case WM_CLOSE:
                 break;
             case WM_QUIT:
                 break;
             case WM_NULL:
                 break;
         }
         // デフォルトのメッセージ処理
         return DefWindowProc(hWnd, wMsg, wParam, lParam);
     }
     catch (Exception) { }
     return 0;
 }