Exemplo n.º 1
0
        public int QueryLog(RV_LOG_QUERY_TYPE logType, SLogItem[] logItems, IntPtr reserved, int waittime)
        {
            int nStructSize = Marshal.SizeOf(typeof(RV_LOG_ITEM));
            int maxlen      = nStructSize * logItems.Length;

            if (maxlen < 0)
            {
                return(0);
            }
            int    nLogBufferlen = 0;
            IntPtr pLogBuffer    = Marshal.AllocHGlobal(maxlen);

            SDK_QueryLog(m_lLogin, logType, pLogBuffer, maxlen, ref nLogBufferlen, reserved, waittime);
            int         nCount = nLogBufferlen / Marshal.SizeOf(typeof(RV_LOG_ITEM));
            RV_LOG_ITEM rvItem;

            for (int i = 0; i < logItems.Length; ++i)
            {
                rvItem = (RV_LOG_ITEM)Marshal.PtrToStructure((IntPtr)((UInt32)pLogBuffer + i * nStructSize), typeof(RV_LOG_ITEM));
                IntToTime(rvItem, logItems[i]);
            }
            Marshal.FreeHGlobal(pLogBuffer);
            return(nCount);
        }
Exemplo n.º 2
0
 private static extern bool SDK_QueryLog(int lLoginID, RV_LOG_QUERY_TYPE logType, IntPtr pLogBuffer, int maxlen, ref int nLogBufferlen, IntPtr reserved, int waittime);