// Distributed Methods
void XferObject::Query(const InterfaceDescription::Member* member, Message& msg)
{
    qcc::String filename = msg->GetArg(0)->v_string.str;
    NotifyUser(MSG_STATUS, "QUERY RECEIVED (%s)", filename.c_str());
    // call into managed code
    int accept = msg->GetArg(1)->v_uint32;
    queryCallback(filename.c_str(), accept);
    MsgArg outArg("i", accept);
    QStatus status = MethodReply(msg, &outArg, 1);
    if (ER_OK != status) {
        NotifyUser(MSG_ERROR, "XferObjectQuery : Error sending reply");
    }
}
 ULONG Value()
 {
     if (_type == ptInteger) return integerValue;
     if (_type == ptIntegerRef)
     {
         if (queryCallback(queryContext, content, integerValue))
             return integerValue;
         else
             FailCase("Can't query value for %s", String());
         return 0;
     }
     FailCase("Can't return value for parameter type %d", _type);
     return 0;
 }