public void Dispose()
{
lock (this)
{
if (iHandle == IntPtr.Zero)
return;
DisposeProxy();
iHandle = IntPtr.Zero;
}
iActionBrowse.Dispose();
iActionSearch.Dispose();
iActionShuffle.Dispose();
iActionGetSearchCapabilities.Dispose();
iActionGetSortCapabilities.Dispose();
iActionCreateReference.Dispose();
iActionAddContainerToQueue.Dispose();
iActionAddItemToQueue.Dispose();
iActionRemoveFromQueue.Dispose();
iActionCreateQueue.Dispose();
iActionRenameQueue.Dispose();
iActionMoveInQueue.Dispose();
iActionDestroyObject.Dispose();
iActionResetDatabase.Dispose();
iActionGetSystemUpdateID.Dispose();
iActionGetIndexerStatus.Dispose();
iActionGetSourceInfo.Dispose();
iActionRescanSource.Dispose();
iActionQueryDatabaseState.Dispose();
iSystemUpdateID.Dispose();
iContainerUpdateIDs.Dispose();
iIndexerStatus.Dispose();
iA_ARG_TYPE_Scope.Dispose();
}