private static unsafe int DoDeleteRecordTask(IntPtr aPtr, uint aVersion, char *aRecordTaskID) { GCHandle gch = GCHandle.FromIntPtr(aPtr); DvServiceUpnpOrgScheduledRecording1 self = (DvServiceUpnpOrgScheduledRecording1)gch.Target; string recordTaskID = Marshal.PtrToStringAnsi((IntPtr)aRecordTaskID); self.DeleteRecordTask(aVersion, recordTaskID); return(0); }