The C# equivalent code specifies query, queryOpts and viewFields with XmlNode query = xmlDoc.CreateNode(XmlNodeType.Element, "Query", "");XmlNode ndViewFields = xmlDoc.CreateNode(XmlNodeType.Element, "ViewFields", "");XmlNode ndQueryOptions = xmlDoc.CreateNode(XmlNodeType.Element, "QueryOptions", ""); ndQueryOptions.InnerXml = "<IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns>" + "<DateInUtc>TRUE</DateInUtc>";ndViewFields.InnerXml = "<FieldRef Name='Title' /><FieldRef Name='Body'/>"; ndQuery.InnerXml = "<Where><Gt><FieldRef Name='Expires' IncludeTimeValue='TRUE'/>" + "<Value Type='DateTime'>" + DateToIso8601(System.DateTime.Now) + "</Value></Gt></Where>";
XmlNode ndListItems = listService.GetListItems("Announcements", null, ndQuery, ndViewFields, null, ndQueryOptions, null); Here's the C++ code I've got so far. while the query works, I'd like to be able to specify a query, queryOpts and viewFields like in the C# code... ListsSoap announcementsService; _ns2__GetListItems announcementQuery; _ns2__GetListItemsResponse announcementResponse; _ns2__GetListItems_query query; _ns2__GetListItems_queryOptions queryOpts; _ns2__GetListItems_viewFields viewFields; string sListName; sListName = "Announcements"; announcementQuery.listName = &sListName; announcementQuery.query = &query; announcementQuery.queryOptions = &queryOpts; announcementQuery.viewFields = &viewFields; // -- Query SYSTEMTIME tmNow; CStringA sTime; string sTimeNow; GetSystemTime(&tmNow); sTime.Format("%4d-%2d-%2dT%2d:%2d:%2dZ", tmNow.wYear, tmNow.wMonth, tmNow.wDay, tmNow.wHour, tmNow.wMinute, tmNow.wSecond); sTimeNow = (LPCSTR) sTime; string sQuery = "<Where><Gt><FieldRef Name='Expires' IncludeTimeValue='TRUE'/><Value Type='DateTime'>" + sTimeNow + "</Value></Gt></Where>"; int nResponse = announcementsService.__ns10__GetListItems(&announcementQuery, &announcementResponse);