public ItemProperty[] QueryAvailableProperties(string itemId)
        {
            itemId.ArgumentNotNullOrEmpty("itemId");

            uint   size;
            IntPtr idsPtr, descriptionsPtr, typesPtr;

            itemProperties.QueryAvailableProperties(
                itemId, out size, out idsPtr, out descriptionsPtr, out typesPtr);

            return(ItemPropertyResultReader.ReadItemProperties(
                       size, idsPtr, descriptionsPtr, typesPtr));
        }