public bool QueryFolder(InventoryFolderBase folder)
        {
            if (m_hasReceivedInventory)
            {
                InventoryFolderBase invFolder = RootFolder.FindFolder(folder.ID);

                if (invFolder != null)
                {
                    // Folder is in local cache, just update client
                    //
                    return(true);
                }

                InventoryFolderBase folderInfo = null;

                folderInfo = m_InventoryService.QueryFolder(folder);

                if (folderInfo != null)
                {
                    InventoryFolderImpl createdFolder = RootFolder.CreateChildFolder(folderInfo.ID, folderInfo.Name, (ushort)folderInfo.Type);

                    createdFolder.Version  = folderInfo.Version;
                    createdFolder.Owner    = folderInfo.Owner;
                    createdFolder.ParentID = folderInfo.ParentID;

                    return(true);
                }

                return(false);
            }
            else
            {
                AddRequest(
                    new InventoryRequest(
                        Delegate.CreateDelegate(typeof(QueryFolderDelegate), this, "QueryFolder"),
                        new object[] { folder.ID }));

                return(true);
            }
        }