private static unsafe int DoGetTransferProgress(IntPtr aPtr, uint aVersion, uint aTransferID, char **aTransferStatus, char **aTransferLength, char **aTransferTotal)
        {
            GCHandle gch = GCHandle.FromIntPtr(aPtr);
            DvServiceUpnpOrgContentDirectory1 self = (DvServiceUpnpOrgContentDirectory1)gch.Target;
            string transferStatus;
            string transferLength;
            string transferTotal;

            self.GetTransferProgress(aVersion, aTransferID, out transferStatus, out transferLength, out transferTotal);
            *aTransferStatus = (char *)Marshal.StringToHGlobalAnsi(transferStatus).ToPointer();
            *aTransferLength = (char *)Marshal.StringToHGlobalAnsi(transferLength).ToPointer();
            *aTransferTotal  = (char *)Marshal.StringToHGlobalAnsi(transferTotal).ToPointer();
            return(0);
        }