/// <summary>
 /// Archive an application on the device.
 /// This function tells the device to make an archive of the specified
 /// application. This results in the device creating a ZIP archive in the
 /// 'ApplicationArchives' directory and uninstalling the application.
 /// </summary>
 /// <param name="client">
 /// The connected installation proxy client
 /// </param>
 /// <param name="appid">
 /// ApplicationIdentifier of the app to archive.
 /// </param>
 /// <param name="client_options">
 /// The client options to use, as PLIST_DICT, or NULL.
 /// Valid options include:
 /// "SkipUninstall" -> Boolean
 /// "ArchiveType" -> "ApplicationOnly"
 /// </param>
 /// <param name="status_cb">
 /// Callback function for progress and status information. If
 /// NULL is passed, this function will run synchronously.
 /// </param>
 /// <param name="user_data">
 /// Callback data passed to status_cb.
 /// </param>
 /// <returns>
 /// INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
 /// an error occured.
 /// </returns>
 /// <remarks>
 /// If a callback function is given (async mode), this function returns
 /// INSTPROXY_E_SUCCESS immediately if the status updater thread has been
 /// created successfully; any error occuring during the command has to be
 /// handled inside the specified callback function.
 /// </remarks>
 public virtual InstallationProxyError instproxy_archive(InstallationProxyClientHandle client, string appid, PlistHandle clientOptions, InstallationProxyStatusCallBack statusCallBack, System.IntPtr userData)
 {
     return(InstallationProxyNativeMethods.instproxy_archive(client, appid, clientOptions, statusCallBack, userData));
 }