private static void dealRealtimeDataRequest(ref PsmAttach oAttach) { if (s_realtimeDataRequestDelegate != null) { s_realtimeDataRequestDelegate(ref oAttach); } }
//发送文件到远端,带有附件参数 //消息命令:feilPath是\0为结束符的 public static int SendFileTransfer(string sFilePath, PsmAttach attach) { int r = 0; IntPtr pnt = Marshal.AllocHGlobal(Marshal.SizeOf(attach)); try { // Copy the struct to unmanaged memory. Marshal.StructureToPtr(attach, pnt, false); r = gci_file_transfer_send(sFilePath, pnt); } finally { // Free the unmanaged memory. Marshal.FreeHGlobal(pnt); } return(r); }
//发送消息命令到远端,带有附件参数 //消息命令:command是\0为结束符的,param是可以包括\0的任意字符 public static unsafe int SendMessageCommand(string sCommand, string sParam, PsmAttach attach) { int r = 0; IntPtr pnt = Marshal.AllocHGlobal(Marshal.SizeOf(attach)); try { // Copy the struct to unmanaged memory. byte[] bylen = Encoding.Default.GetBytes(sParam); Marshal.StructureToPtr(attach, pnt, false); // r = gci_message_command_send(sCommand, sParam, sParam.Length, pnt); r = gci_message_command_send(sCommand, sParam, bylen.Length, pnt); } finally { // Free the unmanaged memory. Marshal.FreeHGlobal(pnt); } return(r); }
private static void dealRealtimeDataPost(int iParamType, IntPtr pData, int iDataLength, int iParamCount, ref PsmAttach oAttach) { if (iParamType == 0x01010203 && s_yxReceivedAddressInt32VqtDelegate != null && iParamCount > 0 && iParamCount < 1024) { AddressInt32Vqt[] values = toAddressInt32Vqts(pData, iDataLength, iParamCount); s_yxReceivedAddressInt32VqtDelegate(values, ref oAttach); } else if (iParamType == 0x01010205 && s_yxReceivedAddressVqtText1Delegate != null && iParamCount > 0 && iParamCount < 1024) { AddressVqtIntText1[] values = toAddressVqtIntText1s(pData, iDataLength, iParamCount); s_yxReceivedAddressVqtText1Delegate(values, ref oAttach); } else if (iParamType == 0x0101021C && s_ycReceivedAddressDoubleVqtDelegate != null && iParamCount > 0 && iParamCount < 1024) { AddressDoubleVqt[] values = toAddressAddressDoubleVqts(pData, iDataLength, iParamCount); s_ycReceivedAddressDoubleVqtDelegate(values, ref oAttach); } else if (iParamType == 0x0101021E && s_ycReceivedAddressVqtText15Delegate != null && iParamCount > 0 && iParamCount < 1024) { AddressVqtRealText15[] values = toAddressVqtRealText15s(pData, iDataLength, iParamCount); s_ycReceivedAddressVqtText15Delegate(values, ref oAttach); } else if (iParamType == 0x0101022F && s_ywReceivedAddressVqtString128Delegate != null && iParamCount > 0 && iParamCount < 1024) { AddressVqtString128[] values = toAddressVqtString128s(pData, iDataLength, iParamCount); s_ywReceivedAddressVqtString128Delegate(values, ref oAttach); } }
private static void dealFileTransfer([MarshalAs(UnmanagedType.LPStr)] string sFilePath, ref PsmAttach oAttach) { if (s_fileTansferDelegate != null) { s_fileTansferDelegate(sFilePath, ref oAttach); } }
private static void dealMessageCommand([MarshalAs(UnmanagedType.LPStr)] string sCommand, IntPtr sParam, int iParamLength, ref PsmAttach oAttach) { if (s_messageCommandDelegate != null) { string sParam1 = SdkNative.assignToString(sParam, iParamLength); s_messageCommandDelegate(sCommand, sParam1, ref oAttach); } }