[DUG] SOAP Question (lets see who the soap guru's are :P)

Jeremy North jeremy.north at gmail.com
Thu Apr 26 20:52:28 NZST 2007


Hi Nick,

Here are two from D2007. Don't know if they are correct.

Let me know if they are still wrong and I'll bug the right guy at
CodeGear about this.

cheers,
Jeremy

On 4/26/07, Nick <nick at salehoo.com> wrote:
> Right, I am trying to get an app written which in Delphi 2006 to do with the
> Google Adwords API.
> The old method I did was
> Program sends data to my web server --> Web server handles all the soap to
> Google --> Info is sent back to my program
> All done with indy.
>
> However I want to get away from that method and talk soap right to Google.
> So, I fired up Delphi, created a new application.
> Then Imported one of the WSDL's from Google
> ( With project open (must be open), File, New, Other, Webservices, WSDL
> importer)
> And now I have my pas file.
> I put that in the uses section of my first form (at the top before the
> types)
>
> Now... what the heck do I do with it. I have spent the best part of 4 hours
> trying to figure this out and im getting no-where.
> Here is the WSDL location (of one of them)
> https://adwords.google.com/api/adwords/v10/TrafficEstimatorService?wsdl
>
> I have also attached the generated pas file.
> O.o
>
> My brain hurts, and all I have got is  With
> GetInfoInterface(true,'',HTTPRIO1) do
> lol
>
> Cheers
>
> //
> ************************************************************************
> //
> // The types declared in this file were generated from data read from the
> // WSDL File described below:
> // WSDL     :
> https://adwords.google.com/api/adwords/v10/InfoService?wsdl
> // Encoding : UTF-8
> // Version  : 1.0
> // (24/04/2007 11:04:16 a.m. - 16.03.2006)
> //
> ************************************************************************
> //
>
> unit InfoService;
>
> interface
>
> uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;
>
> type
>
>  //
> ************************************************************************
> //
>  // The following types, referred to in the WSDL document are not being
> represented
>  // in this file. They are either aliases[@] of other types represented or
> were referred
>  // to but never[!] declared in the document. The types from the latter
> category
>  // typically map to predefined/known XML or Borland types; however, they
> could also
>  // indicate incorrect WSDL documents that failed to declare or import a
> schema type.
>  //
> ************************************************************************
> //
>  // !:string          - "http://www.w3.org/2001/XMLSchema"
>  // !:long            - "http://www.w3.org/2001/XMLSchema"
>  // !:int             - "http://www.w3.org/2001/XMLSchema"
>  // !:boolean         - "http://www.w3.org/2001/XMLSchema"
>  // !:date            - "http://www.w3.org/2001/XMLSchema"
>
>  getFreeUsageQuotaThisMonth = class;           {
> "https://adwords.google.com/api/adwords/v10" }
>  getOperationsQuotaThisMonth = class;          {
> "https://adwords.google.com/api/adwords/v10" }
>  getUsageQuotaThisMonth = class;               {
> "https://adwords.google.com/api/adwords/v10" }
>  getUsageQuotaThisMonthResponse = class;       {
> "https://adwords.google.com/api/adwords/v10" }
>  getUnitCountResponse = class;                 {
> "https://adwords.google.com/api/adwords/v10" }
>  getUnitCountForMethodResponse = class;        {
> "https://adwords.google.com/api/adwords/v10" }
>  getOperationsQuotaThisMonthResponse = class;   {
> "https://adwords.google.com/api/adwords/v10" }
>  getOperationCountResponse = class;            {
> "https://adwords.google.com/api/adwords/v10" }
>  getFreeUsageQuotaThisMonthResponse = class;   {
> "https://adwords.google.com/api/adwords/v10" }
>  getMethodCostResponse = class;                {
> "https://adwords.google.com/api/adwords/v10" }
>  ApiError             = class;                 {
> "https://adwords.google.com/api/adwords/v10" }
>  ApiException         = class;                 {
> "https://adwords.google.com/api/adwords/v10" }
>  getUnitCountForMethod = class;                {
> "https://adwords.google.com/api/adwords/v10" }
>  getUnitCountForClients = class;               {
> "https://adwords.google.com/api/adwords/v10" }
>  getUnitCount         = class;                 {
> "https://adwords.google.com/api/adwords/v10" }
>  getOperationCount    = class;                 {
> "https://adwords.google.com/api/adwords/v10" }
>  getMethodCost        = class;                 {
> "https://adwords.google.com/api/adwords/v10" }
>  ClientUsageRecord    = class;                 {
> "https://adwords.google.com/api/adwords/v10" }
>  useragent            = class;                 {
> "https://adwords.google.com/api/adwords/v10"[H] }
>  password             = class;                 {
> "https://adwords.google.com/api/adwords/v10"[H] }
>  email                = class;                 {
> "https://adwords.google.com/api/adwords/v10"[H] }
>  clientEmail          = class;                 {
> "https://adwords.google.com/api/adwords/v10"[H] }
>  clientCustomerId     = class;                 {
> "https://adwords.google.com/api/adwords/v10"[H] }
>  developerToken       = class;                 {
> "https://adwords.google.com/api/adwords/v10"[H] }
>  applicationToken     = class;                 {
> "https://adwords.google.com/api/adwords/v10"[H] }
>  responseTime         = class;                 {
> "https://adwords.google.com/api/adwords/v10"[H] }
>  operations           = class;                 {
> "https://adwords.google.com/api/adwords/v10"[H] }
>  units                = class;                 {
> "https://adwords.google.com/api/adwords/v10"[H] }
>  requestId            = class;                 {
> "https://adwords.google.com/api/adwords/v10"[H] }
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoLiteralParam]
>  //
> ************************************************************************
> //
>  getFreeUsageQuotaThisMonth = class(TRemotable)
>  private
>  public
>    constructor Create; override;
>  published
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoLiteralParam]
>  //
> ************************************************************************
> //
>  getOperationsQuotaThisMonth = class(TRemotable)
>  private
>  public
>    constructor Create; override;
>  published
>  end;
>
>  getUnitCountForClientsResponse = array of ClientUsageRecord;   {
> "https://adwords.google.com/api/adwords/v10" }
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoLiteralParam]
>  //
> ************************************************************************
> //
>  getUsageQuotaThisMonth = class(TRemotable)
>  private
>  public
>    constructor Create; override;
>  published
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoLiteralParam]
>  //
> ************************************************************************
> //
>  getUsageQuotaThisMonthResponse = class(TRemotable)
>  private
>    FgetUsageQuotaThisMonthReturn: Int64;
>  public
>    constructor Create; override;
>  published
>    property getUsageQuotaThisMonthReturn: Int64 read
> FgetUsageQuotaThisMonthReturn write FgetUsageQuotaThisMonthReturn;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoLiteralParam]
>  //
> ************************************************************************
> //
>  getUnitCountResponse = class(TRemotable)
>  private
>    FgetUnitCountReturn: Int64;
>  public
>    constructor Create; override;
>  published
>    property getUnitCountReturn: Int64 read FgetUnitCountReturn write
> FgetUnitCountReturn;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoLiteralParam]
>  //
> ************************************************************************
> //
>  getUnitCountForMethodResponse = class(TRemotable)
>  private
>    FgetUnitCountForMethodReturn: Int64;
>  public
>    constructor Create; override;
>  published
>    property getUnitCountForMethodReturn: Int64 read
> FgetUnitCountForMethodReturn write FgetUnitCountForMethodReturn;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoLiteralParam]
>  //
> ************************************************************************
> //
>  getOperationsQuotaThisMonthResponse = class(TRemotable)
>  private
>    FgetOperationsQuotaThisMonthReturn: Int64;
>  public
>    constructor Create; override;
>  published
>    property getOperationsQuotaThisMonthReturn: Int64 read
> FgetOperationsQuotaThisMonthReturn write
> FgetOperationsQuotaThisMonthReturn;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoLiteralParam]
>  //
> ************************************************************************
> //
>  getOperationCountResponse = class(TRemotable)
>  private
>    FgetOperationCountReturn: Int64;
>  public
>    constructor Create; override;
>  published
>    property getOperationCountReturn: Int64 read FgetOperationCountReturn
> write FgetOperationCountReturn;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoLiteralParam]
>  //
> ************************************************************************
> //
>  getFreeUsageQuotaThisMonthResponse = class(TRemotable)
>  private
>    FgetFreeUsageQuotaThisMonthReturn: Int64;
>  public
>    constructor Create; override;
>  published
>    property getFreeUsageQuotaThisMonthReturn: Int64 read
> FgetFreeUsageQuotaThisMonthReturn write
> FgetFreeUsageQuotaThisMonthReturn;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoLiteralParam]
>  //
> ************************************************************************
> //
>  getMethodCostResponse = class(TRemotable)
>  private
>    FgetMethodCostReturn: Integer;
>  public
>    constructor Create; override;
>  published
>    property getMethodCostReturn: Integer read FgetMethodCostReturn write
> FgetMethodCostReturn;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  //
> ************************************************************************
> //
>  ApiError = class(TRemotable)
>  private
>    Fcode: Integer;
>    Fdetail: WideString;
>    Ffield: WideString;
>    Findex_: Integer;
>    FisExemptable: Boolean;
>    FtextIndex: Integer;
>    FtextLength: Integer;
>    Ftrigger: WideString;
>  published
>    property code: Integer read Fcode write Fcode;
>    property detail: WideString read Fdetail write Fdetail;
>    property field: WideString read Ffield write Ffield;
>    property index_: Integer read Findex_ write Findex_;
>    property isExemptable: Boolean read FisExemptable write FisExemptable;
>    property textIndex: Integer read FtextIndex write FtextIndex;
>    property textLength: Integer read FtextLength write FtextLength;
>    property trigger: WideString read Ftrigger write Ftrigger;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  //
> ************************************************************************
> //
>  ApiException = class(TRemotable)
>  private
>    Fcode: Integer;
>    Ferrors: ApiError;
>    Finternal: Boolean;
>    Fmessage_: WideString;
>    Ftrigger: WideString;
>  public
>    destructor Destroy; override;
>  published
>    property code: Integer read Fcode write Fcode;
>    property errors: ApiError read Ferrors write Ferrors;
>    property internal: Boolean read Finternal write Finternal;
>    property message_: WideString read Fmessage_ write Fmessage_;
>    property trigger: WideString read Ftrigger write Ftrigger;
>  end;
>
>  fault           = ApiException;      {
> "https://adwords.google.com/api/adwords/v10"[F] }
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoLiteralParam]
>  //
> ************************************************************************
> //
>  getUnitCountForMethod = class(TRemotable)
>  private
>    Fservice: WideString;
>    Fmethod: WideString;
>    FstartDate: TXSDate;
>    FendDate: TXSDate;
>  public
>    constructor Create; override;
>    destructor Destroy; override;
>  published
>    property service: WideString read Fservice write Fservice;
>    property method: WideString read Fmethod write Fmethod;
>    property startDate: TXSDate read FstartDate write FstartDate;
>    property endDate: TXSDate read FendDate write FendDate;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoLiteralParam]
>  //
> ************************************************************************
> //
>  getUnitCountForClients = class(TRemotable)
>  private
>    FclientEmails: WideString;
>    FstartDate: TXSDate;
>    FendDate: TXSDate;
>  public
>    constructor Create; override;
>    destructor Destroy; override;
>  published
>    property clientEmails: WideString read FclientEmails write FclientEmails;
>    property startDate: TXSDate read FstartDate write FstartDate;
>    property endDate: TXSDate read FendDate write FendDate;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoLiteralParam]
>  //
> ************************************************************************
> //
>  getUnitCount = class(TRemotable)
>  private
>    FstartDate: TXSDate;
>    FendDate: TXSDate;
>  public
>    constructor Create; override;
>    destructor Destroy; override;
>  published
>    property startDate: TXSDate read FstartDate write FstartDate;
>    property endDate: TXSDate read FendDate write FendDate;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoLiteralParam]
>  //
> ************************************************************************
> //
>  getOperationCount = class(TRemotable)
>  private
>    FstartDate: TXSDate;
>    FendDate: TXSDate;
>  public
>    constructor Create; override;
>    destructor Destroy; override;
>  published
>    property startDate: TXSDate read FstartDate write FstartDate;
>    property endDate: TXSDate read FendDate write FendDate;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoLiteralParam]
>  //
> ************************************************************************
> //
>  getMethodCost = class(TRemotable)
>  private
>    Fservice: WideString;
>    Fmethod: WideString;
>    Fdate: TXSDate;
>  public
>    constructor Create; override;
>    destructor Destroy; override;
>  published
>    property service: WideString read Fservice write Fservice;
>    property method: WideString read Fmethod write Fmethod;
>    property date: TXSDate read Fdate write Fdate;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  //
> ************************************************************************
> //
>  ClientUsageRecord = class(TRemotable)
>  private
>    FclientEmail: WideString;
>    FquotaUnits: Int64;
>  published
>    property clientEmail: WideString read FclientEmail write FclientEmail;
>    property quotaUnits: Int64 read FquotaUnits write FquotaUnits;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoSimpleTypeWrapper]
>  //
> ************************************************************************
> //
>  useragent = class(TSOAPHeader)
>  private
>    FValue: WideString;
>  published
>    property Value: WideString read FValue write FValue;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoSimpleTypeWrapper]
>  //
> ************************************************************************
> //
>  password = class(TSOAPHeader)
>  private
>    FValue: WideString;
>  published
>    property Value: WideString read FValue write FValue;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoSimpleTypeWrapper]
>  //
> ************************************************************************
> //
>  email = class(TSOAPHeader)
>  private
>    FValue: WideString;
>  published
>    property Value: WideString read FValue write FValue;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoSimpleTypeWrapper]
>  //
> ************************************************************************
> //
>  clientEmail = class(TSOAPHeader)
>  private
>    FValue: WideString;
>  published
>    property Value: WideString read FValue write FValue;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoSimpleTypeWrapper]
>  //
> ************************************************************************
> //
>  clientCustomerId = class(TSOAPHeader)
>  private
>    FValue: WideString;
>  published
>    property Value: WideString read FValue write FValue;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoSimpleTypeWrapper]
>  //
> ************************************************************************
> //
>  developerToken = class(TSOAPHeader)
>  private
>    FValue: WideString;
>  published
>    property Value: WideString read FValue write FValue;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoSimpleTypeWrapper]
>  //
> ************************************************************************
> //
>  applicationToken = class(TSOAPHeader)
>  private
>    FValue: WideString;
>  published
>    property Value: WideString read FValue write FValue;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoSimpleTypeWrapper]
>  //
> ************************************************************************
> //
>  responseTime = class(TSOAPHeader)
>  private
>    FValue: Int64;
>  published
>    property Value: Int64 read FValue write FValue;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoSimpleTypeWrapper]
>  //
> ************************************************************************
> //
>  operations = class(TSOAPHeader)
>  private
>    FValue: Int64;
>  published
>    property Value: Int64 read FValue write FValue;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoSimpleTypeWrapper]
>  //
> ************************************************************************
> //
>  units = class(TSOAPHeader)
>  private
>    FValue: Int64;
>  published
>    property Value: Int64 read FValue write FValue;
>  end;
>
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // Serializtn: [xoSimpleTypeWrapper]
>  //
> ************************************************************************
> //
>  requestId = class(TSOAPHeader)
>  private
>    FValue: WideString;
>  published
>    property Value: WideString read FValue write FValue;
>  end;
>
>
>  //
> ************************************************************************
> //
>  // Namespace : https://adwords.google.com/api/adwords/v10
>  // transport : http://schemas.xmlsoap.org/soap/http
>  // style     : document
>  // binding   : InfoServiceSoapBinding
>  // service   : InfoService
>  // port      : InfoService
>  // URL       :
> https://adwords.google.com/api/adwords/v10/InfoService
>  //
> ************************************************************************
> //
>  InfoInterface = interface(IInvokable)
>  ['{C9DFB757-3500-B070-5EF2-260E77A5696F}']
>    function  getFreeUsageQuotaThisMonth(const parameters:
> getFreeUsageQuotaThisMonth):
> getFreeUsageQuotaThisMonthResponse; stdcall;
>    function  getMethodCost(const parameters: getMethodCost):
> getMethodCostResponse; stdcall;
>    function  getOperationCount(const parameters: getOperationCount):
> getOperationCountResponse; stdcall;
>    function  getOperationsQuotaThisMonth(const parameters:
> getOperationsQuotaThisMonth):
> getOperationsQuotaThisMonthResponse; stdcall;
>    function  getUnitCount(const parameters: getUnitCount):
> getUnitCountResponse; stdcall;
>    function  getUnitCountForClients(const parameters:
> getUnitCountForClients): getUnitCountForClientsResponse;
> stdcall;
>    function  getUnitCountForMethod(const parameters: getUnitCountForMethod):
> getUnitCountForMethodResponse; stdcall;
>    function  getUsageQuotaThisMonth(const parameters:
> getUsageQuotaThisMonth): getUsageQuotaThisMonthResponse;
> stdcall;
>  end;
>
> function GetInfoInterface(UseWSDL: Boolean=System.False; Addr: string='';
> HTTPRIO: THTTPRIO = nil): InfoInterface;
>
>
> implementation
>
> function GetInfoInterface(UseWSDL: Boolean; Addr: string; HTTPRIO:
> THTTPRIO): InfoInterface;
> const
>  defWSDL =
> 'https://adwords.google.com/api/adwords/v10/InfoService?wsdl';
>  defURL  =
> 'https://adwords.google.com/api/adwords/v10/InfoService';
>  defSvc  = 'InfoService';
>  defPrt  = 'InfoService';
> var
>  RIO: THTTPRIO;
> begin
>  Result := nil;
>  if (Addr = '') then
>  begin
>    if UseWSDL then
>      Addr := defWSDL
>    else
>      Addr := defURL;
>  end;
>  if HTTPRIO = nil then
>    RIO := THTTPRIO.Create(nil)
>  else
>    RIO := HTTPRIO;
>  try
>    Result := (RIO as InfoInterface);
>    if UseWSDL then
>    begin
>      RIO.WSDLLocation := Addr;
>      RIO.Service := defSvc;
>      RIO.Port := defPrt;
>    end else
>      RIO.URL := Addr;
>  finally
>    if (Result = nil) and (HTTPRIO = nil) then
>      RIO.Free;
>  end;
> end;
>
>
> constructor getFreeUsageQuotaThisMonth.Create;
> begin
>  inherited Create;
>  FSerializationOptions := [xoLiteralParam];
> end;
>
> constructor getOperationsQuotaThisMonth.Create;
> begin
>  inherited Create;
>  FSerializationOptions := [xoLiteralParam];
> end;
>
> constructor getUsageQuotaThisMonth.Create;
> begin
>  inherited Create;
>  FSerializationOptions := [xoLiteralParam];
> end;
>
> constructor getUsageQuotaThisMonthResponse.Create;
> begin
>  inherited Create;
>  FSerializationOptions := [xoLiteralParam];
> end;
>
> constructor getUnitCountResponse.Create;
> begin
>  inherited Create;
>  FSerializationOptions := [xoLiteralParam];
> end;
>
> constructor getUnitCountForMethodResponse.Create;
> begin
>  inherited Create;
>  FSerializationOptions := [xoLiteralParam];
> end;
>
> constructor getOperationsQuotaThisMonthResponse.Create;
> begin
>  inherited Create;
>  FSerializationOptions := [xoLiteralParam];
> end;
>
> constructor getOperationCountResponse.Create;
> begin
>  inherited Create;
>  FSerializationOptions := [xoLiteralParam];
> end;
>
> constructor getFreeUsageQuotaThisMonthResponse.Create;
> begin
>  inherited Create;
>  FSerializationOptions := [xoLiteralParam];
> end;
>
> constructor getMethodCostResponse.Create;
> begin
>  inherited Create;
>  FSerializationOptions := [xoLiteralParam];
> end;
>
> destructor ApiException.Destroy;
> begin
>  if Assigned(Ferrors) then
>    Ferrors.Free;
>  inherited Destroy;
> end;
>
> constructor getUnitCountForMethod.Create;
> begin
>  inherited Create;
>  FSerializationOptions := [xoLiteralParam];
> end;
>
> destructor getUnitCountForMethod.Destroy;
> begin
>  if Assigned(FstartDate) then
>    FstartDate.Free;
>  if Assigned(FendDate) then
>    FendDate.Free;
>  inherited Destroy;
> end;
>
> constructor getUnitCountForClients.Create;
> begin
>  inherited Create;
>  FSerializationOptions := [xoLiteralParam];
> end;
>
> destructor getUnitCountForClients.Destroy;
> begin
>  if Assigned(FstartDate) then
>    FstartDate.Free;
>  if Assigned(FendDate) then
>    FendDate.Free;
>  inherited Destroy;
> end;
>
> constructor getUnitCount.Create;
> begin
>  inherited Create;
>  FSerializationOptions := [xoLiteralParam];
> end;
>
> destructor getUnitCount.Destroy;
> begin
>  if Assigned(FstartDate) then
>    FstartDate.Free;
>  if Assigned(FendDate) then
>    FendDate.Free;
>  inherited Destroy;
> end;
>
> constructor getOperationCount.Create;
> begin
>  inherited Create;
>  FSerializationOptions := [xoLiteralParam];
> end;
>
> destructor getOperationCount.Destroy;
> begin
>  if Assigned(FstartDate) then
>    FstartDate.Free;
>  if Assigned(FendDate) then
>    FendDate.Free;
>  inherited Destroy;
> end;
>
> constructor getMethodCost.Create;
> begin
>  inherited Create;
>  FSerializationOptions := [xoLiteralParam];
> end;
>
> destructor getMethodCost.Destroy;
> begin
>  if Assigned(Fdate) then
>    Fdate.Free;
>  inherited Destroy;
> end;
>
> initialization
>  InvRegistry.RegisterInterface(TypeInfo(InfoInterface),
> 'https://adwords.google.com/api/adwords/v10', 'UTF-8');
> InvRegistry.RegisterDefaultSOAPAction(TypeInfo(InfoInterface),
> '');
>  InvRegistry.RegisterInvokeOptions(TypeInfo(InfoInterface),
> ioDocument);
>  InvRegistry.RegisterInvokeOptions(TypeInfo(InfoInterface),
> ioLiteral);
>  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface),
> useragent, 'useragent', '');
>  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface),
> password, 'password', '');
>  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface),
> email, 'email', '');
>  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface),
> clientEmail, 'clientEmail', '');
>  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface),
> clientCustomerId, 'clientCustomerId', '');
>  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface),
> developerToken, 'developerToken', '');
>  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface),
> applicationToken, 'applicationToken', '');
>  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface),
> responseTime, 'responseTime', '');
>  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface),
> operations, 'operations', '');
>  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface),
> units, 'units', '');
>  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface),
> requestId, 'requestId', '');
> RemClassRegistry.RegisterXSClass(getFreeUsageQuotaThisMonth,
> 'https://adwords.google.com/api/adwords/v10',
> 'getFreeUsageQuotaThisMonth');
> RemClassRegistry.RegisterSerializeOptions(getFreeUsageQuotaThisMonth,
> [xoLiteralParam]);
> RemClassRegistry.RegisterXSClass(getOperationsQuotaThisMonth,
> 'https://adwords.google.com/api/adwords/v10',
> 'getOperationsQuotaThisMonth');
> RemClassRegistry.RegisterSerializeOptions(getOperationsQuotaThisMonth,
> [xoLiteralParam]);
> RemClassRegistry.RegisterXSInfo(TypeInfo(getUnitCountForClientsResponse),
> 'https://adwords.google.com/api/adwords/v10',
> 'getUnitCountForClientsResponse');
>  RemClassRegistry.RegisterXSClass(getUsageQuotaThisMonth,
> 'https://adwords.google.com/api/adwords/v10',
> 'getUsageQuotaThisMonth');
> RemClassRegistry.RegisterSerializeOptions(getUsageQuotaThisMonth,
> [xoLiteralParam]);
> RemClassRegistry.RegisterXSClass(getUsageQuotaThisMonthResponse,
> 'https://adwords.google.com/api/adwords/v10',
> 'getUsageQuotaThisMonthResponse');
> RemClassRegistry.RegisterSerializeOptions(getUsageQuotaThisMonthResponse,
> [xoLiteralParam]);
>  RemClassRegistry.RegisterXSClass(getUnitCountResponse,
> 'https://adwords.google.com/api/adwords/v10',
> 'getUnitCountResponse');
> RemClassRegistry.RegisterSerializeOptions(getUnitCountResponse,
> [xoLiteralParam]);
> RemClassRegistry.RegisterXSClass(getUnitCountForMethodResponse,
> 'https://adwords.google.com/api/adwords/v10',
> 'getUnitCountForMethodResponse');
> RemClassRegistry.RegisterSerializeOptions(getUnitCountForMethodResponse,
> [xoLiteralParam]);
> RemClassRegistry.RegisterXSClass(getOperationsQuotaThisMonthResponse,
> 'https://adwords.google.com/api/adwords/v10',
> 'getOperationsQuotaThisMonthResponse');
> RemClassRegistry.RegisterSerializeOptions(getOperationsQuotaThisMonthResponse,
> [xoLiteralParam]);
> RemClassRegistry.RegisterXSClass(getOperationCountResponse,
> 'https://adwords.google.com/api/adwords/v10',
> 'getOperationCountResponse');
> RemClassRegistry.RegisterSerializeOptions(getOperationCountResponse,
> [xoLiteralParam]);
> RemClassRegistry.RegisterXSClass(getFreeUsageQuotaThisMonthResponse,
> 'https://adwords.google.com/api/adwords/v10',
> 'getFreeUsageQuotaThisMonthResponse');
> RemClassRegistry.RegisterSerializeOptions(getFreeUsageQuotaThisMonthResponse,
> [xoLiteralParam]);
>  RemClassRegistry.RegisterXSClass(getMethodCostResponse,
> 'https://adwords.google.com/api/adwords/v10',
> 'getMethodCostResponse');
> RemClassRegistry.RegisterSerializeOptions(getMethodCostResponse,
> [xoLiteralParam]);
>  RemClassRegistry.RegisterXSClass(ApiError,
> 'https://adwords.google.com/api/adwords/v10', 'ApiError');
> RemClassRegistry.RegisterExternalPropName(TypeInfo(ApiError),
> 'index_', 'index');
>  RemClassRegistry.RegisterXSClass(ApiException,
> 'https://adwords.google.com/api/adwords/v10',
> 'ApiException');
> RemClassRegistry.RegisterExternalPropName(TypeInfo(ApiException),
> 'message_', 'message');
>  RemClassRegistry.RegisterXSInfo(TypeInfo(fault),
> 'https://adwords.google.com/api/adwords/v10', 'fault');
>  RemClassRegistry.RegisterXSClass(getUnitCountForMethod,
> 'https://adwords.google.com/api/adwords/v10',
> 'getUnitCountForMethod');
> RemClassRegistry.RegisterSerializeOptions(getUnitCountForMethod,
> [xoLiteralParam]);
>  RemClassRegistry.RegisterXSClass(getUnitCountForClients,
> 'https://adwords.google.com/api/adwords/v10',
> 'getUnitCountForClients');
> RemClassRegistry.RegisterSerializeOptions(getUnitCountForClients,
> [xoLiteralParam]);
>  RemClassRegistry.RegisterXSClass(getUnitCount,
> 'https://adwords.google.com/api/adwords/v10',
> 'getUnitCount');
>  RemClassRegistry.RegisterSerializeOptions(getUnitCount,
> [xoLiteralParam]);
>  RemClassRegistry.RegisterXSClass(getOperationCount,
> 'https://adwords.google.com/api/adwords/v10',
> 'getOperationCount');
> RemClassRegistry.RegisterSerializeOptions(getOperationCount,
> [xoLiteralParam]);
>  RemClassRegistry.RegisterXSClass(getMethodCost,
> 'https://adwords.google.com/api/adwords/v10',
> 'getMethodCost');
>  RemClassRegistry.RegisterSerializeOptions(getMethodCost,
> [xoLiteralParam]);
>  RemClassRegistry.RegisterXSClass(ClientUsageRecord,
> 'https://adwords.google.com/api/adwords/v10',
> 'ClientUsageRecord');
>  RemClassRegistry.RegisterXSClass(useragent,
> 'https://adwords.google.com/api/adwords/v10', 'useragent');
>  RemClassRegistry.RegisterSerializeOptions(useragent,
> [xoSimpleTypeWrapper]);
>  RemClassRegistry.RegisterXSClass(password,
> 'https://adwords.google.com/api/adwords/v10', 'password');
>  RemClassRegistry.RegisterSerializeOptions(password,
> [xoSimpleTypeWrapper]);
>  RemClassRegistry.RegisterXSClass(email,
> 'https://adwords.google.com/api/adwords/v10', 'email');
>  RemClassRegistry.RegisterSerializeOptions(email,
> [xoSimpleTypeWrapper]);
>  RemClassRegistry.RegisterXSClass(clientEmail,
> 'https://adwords.google.com/api/adwords/v10',
> 'clientEmail');
>  RemClassRegistry.RegisterSerializeOptions(clientEmail,
> [xoSimpleTypeWrapper]);
>  RemClassRegistry.RegisterXSClass(clientCustomerId,
> 'https://adwords.google.com/api/adwords/v10',
> 'clientCustomerId');
> RemClassRegistry.RegisterSerializeOptions(clientCustomerId,
> [xoSimpleTypeWrapper]);
>  RemClassRegistry.RegisterXSClass(developerToken,
> 'https://adwords.google.com/api/adwords/v10',
> 'developerToken');
>  RemClassRegistry.RegisterSerializeOptions(developerToken,
> [xoSimpleTypeWrapper]);
>  RemClassRegistry.RegisterXSClass(applicationToken,
> 'https://adwords.google.com/api/adwords/v10',
> 'applicationToken');
> RemClassRegistry.RegisterSerializeOptions(applicationToken,
> [xoSimpleTypeWrapper]);
>  RemClassRegistry.RegisterXSClass(responseTime,
> 'https://adwords.google.com/api/adwords/v10',
> 'responseTime');
>  RemClassRegistry.RegisterSerializeOptions(responseTime,
> [xoSimpleTypeWrapper]);
>  RemClassRegistry.RegisterXSClass(operations,
> 'https://adwords.google.com/api/adwords/v10',
> 'operations');
>  RemClassRegistry.RegisterSerializeOptions(operations,
> [xoSimpleTypeWrapper]);
>  RemClassRegistry.RegisterXSClass(units,
> 'https://adwords.google.com/api/adwords/v10', 'units');
>  RemClassRegistry.RegisterSerializeOptions(units,
> [xoSimpleTypeWrapper]);
>  RemClassRegistry.RegisterXSClass(requestId,
> 'https://adwords.google.com/api/adwords/v10', 'requestId');
>  RemClassRegistry.RegisterSerializeOptions(requestId,
> [xoSimpleTypeWrapper]);
>
> end.
> _______________________________________________
> NZ Borland Developers Group - Delphi mailing list
> Post: delphi at delphi.org.nz
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to delphi-request at delphi.org.nz with Subject:
> unsubscribe
>
-------------- next part --------------
// ************************************************************************ //
// The types declared in this file were generated from data read from the
// WSDL File described below:
// WSDL     : https://adwords.google.com/api/adwords/v10/TrafficEstimatorService?wsdl
//  >Import : https://adwords.google.com/api/adwords/v10/TrafficEstimatorService?wsdl:0
// Encoding : UTF-8
// Version  : 1.0
// (26/04/2007 6:49:18 PM - * $Rev: 5154 $)
// ************************************************************************ //

unit TrafficEstimatorService;

interface

uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;

const
  IS_OPTN = $0001;
  IS_UNBD = $0002;
  IS_NLBL = $0004;
  IS_UNQL = $0008;
  IS_ATTR = $0010;
  IS_TEXT = $0020;

type

  // ************************************************************************ //
  // The following types, referred to in the WSDL document are not being represented
  // in this file. They are either aliases[@] of other types represented or were referred
  // to but never[!] declared in the document. The types from the latter category
  // typically map to predefined/known XML or Borland types; however, they could also 
  // indicate incorrect WSDL documents that failed to declare or import a schema type.
  // ************************************************************************ //
  // !:int             - "http://www.w3.org/2001/XMLSchema"
  // !:long            - "http://www.w3.org/2001/XMLSchema"
  // !:string          - "http://www.w3.org/2001/XMLSchema"
  // !:boolean         - "http://www.w3.org/2001/XMLSchema"
  // !:float           - "http://www.w3.org/2001/XMLSchema"

  ApiError             = class;                 { "https://adwords.google.com/api/adwords/v10"[GblCplx] }
  Circle               = class;                 { "https://adwords.google.com/api/adwords/v10"[GblCplx] }
  KeywordEstimate      = class;                 { "https://adwords.google.com/api/adwords/v10"[GblCplx] }
  KeywordRequest       = class;                 { "https://adwords.google.com/api/adwords/v10"[GblCplx] }
  KeywordTrafficRequest = class;                { "https://adwords.google.com/api/adwords/v10"[GblCplx] }
  useragent            = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  password             = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  email                = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  clientEmail          = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  clientCustomerId     = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  developerToken       = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  applicationToken     = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  responseTime         = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  operations           = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  units                = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  requestId            = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  circles              = class;                 { "https://adwords.google.com/api/adwords/v10"[alias] }
  GeoTarget            = class;                 { "https://adwords.google.com/api/adwords/v10"[GblCplx] }
  AdGroupEstimate      = class;                 { "https://adwords.google.com/api/adwords/v10"[GblCplx] }
  AdGroupRequest       = class;                 { "https://adwords.google.com/api/adwords/v10"[GblCplx] }
  ApiException         = class;                 { "https://adwords.google.com/api/adwords/v10"[Flt][GblCplx] }
  fault                = class;                 { "https://adwords.google.com/api/adwords/v10"[Flt][GblElm] }
  CampaignEstimate     = class;                 { "https://adwords.google.com/api/adwords/v10"[GblCplx] }
  CampaignRequest      = class;                 { "https://adwords.google.com/api/adwords/v10"[GblCplx] }

  { "https://adwords.google.com/api/adwords/v10"[GblSmpl] }
  KeywordType = (Broad, Phrase, Exact);

  { "https://adwords.google.com/api/adwords/v10"[GblSmpl] }
  NetworkType = (GoogleSearch, SearchNetwork, ContentNetwork);

  { "https://adwords.google.com/api/adwords/v10"[GblSmpl] }
  KeywordTraffic = (HasTraffic, VeryLowTraffic, Unknown);



  // ************************************************************************ //
  // XML       : ApiError, global, <complexType>
  // Namespace : https://adwords.google.com/api/adwords/v10
  // ************************************************************************ //
  ApiError = class(TRemotable)
  private
    Fcode: Integer;
    Fdetail: WideString;
    Ffield: WideString;
    Ffield_Specified: boolean;
    Findex_: Integer;
    FisExemptable: Boolean;
    FtextIndex: Integer;
    FtextIndex_Specified: boolean;
    FtextLength: Integer;
    FtextLength_Specified: boolean;
    Ftrigger: WideString;
    Ftrigger_Specified: boolean;
    procedure Setfield(Index: Integer; const AWideString: WideString);
    function  field_Specified(Index: Integer): boolean;
    procedure SettextIndex(Index: Integer; const AInteger: Integer);
    function  textIndex_Specified(Index: Integer): boolean;
    procedure SettextLength(Index: Integer; const AInteger: Integer);
    function  textLength_Specified(Index: Integer): boolean;
    procedure Settrigger(Index: Integer; const AWideString: WideString);
    function  trigger_Specified(Index: Integer): boolean;
  published
    property code:         Integer     read Fcode write Fcode;
    property detail:       WideString  read Fdetail write Fdetail;
    property field:        WideString  Index (IS_OPTN) read Ffield write Setfield stored field_Specified;
    property index_:       Integer     read Findex_ write Findex_;
    property isExemptable: Boolean     read FisExemptable write FisExemptable;
    property textIndex:    Integer     Index (IS_OPTN) read FtextIndex write SettextIndex stored textIndex_Specified;
    property textLength:   Integer     Index (IS_OPTN) read FtextLength write SettextLength stored textLength_Specified;
    property trigger:      WideString  Index (IS_OPTN) read Ftrigger write Settrigger stored trigger_Specified;
  end;



  // ************************************************************************ //
  // XML       : Circle, global, <complexType>
  // Namespace : https://adwords.google.com/api/adwords/v10
  // ************************************************************************ //
  Circle = class(TRemotable)
  private
    FlatitudeMicroDegrees: Integer;
    FlongitudeMicroDegrees: Integer;
    FradiusMeters: Integer;
  published
    property latitudeMicroDegrees:  Integer  read FlatitudeMicroDegrees write FlatitudeMicroDegrees;
    property longitudeMicroDegrees: Integer  read FlongitudeMicroDegrees write FlongitudeMicroDegrees;
    property radiusMeters:          Integer  read FradiusMeters write FradiusMeters;
  end;

  ProximityTargets = array of circles;          { "https://adwords.google.com/api/adwords/v10"[GblCplx] }


  // ************************************************************************ //
  // XML       : KeywordEstimate, global, <complexType>
  // Namespace : https://adwords.google.com/api/adwords/v10
  // ************************************************************************ //
  KeywordEstimate = class(TRemotable)
  private
    Fid: Int64;
    Fid_Specified: boolean;
    FlowerAvgPosition: Single;
    FlowerClicksPerDay: Single;
    FlowerCpc: Int64;
    FupperAvgPosition: Single;
    FupperClicksPerDay: Single;
    FupperCpc: Int64;
    procedure Setid(Index: Integer; const AInt64: Int64);
    function  id_Specified(Index: Integer): boolean;
  published
    property id:                Int64   Index (IS_OPTN) read Fid write Setid stored id_Specified;
    property lowerAvgPosition:  Single  read FlowerAvgPosition write FlowerAvgPosition;
    property lowerClicksPerDay: Single  read FlowerClicksPerDay write FlowerClicksPerDay;
    property lowerCpc:          Int64   read FlowerCpc write FlowerCpc;
    property upperAvgPosition:  Single  read FupperAvgPosition write FupperAvgPosition;
    property upperClicksPerDay: Single  read FupperClicksPerDay write FupperClicksPerDay;
    property upperCpc:          Int64   read FupperCpc write FupperCpc;
  end;



  // ************************************************************************ //
  // XML       : KeywordRequest, global, <complexType>
  // Namespace : https://adwords.google.com/api/adwords/v10
  // ************************************************************************ //
  KeywordRequest = class(TRemotable)
  private
    Fid: Int64;
    Fid_Specified: boolean;
    FmaxCpc: Int64;
    FmaxCpc_Specified: boolean;
    Fnegative: Boolean;
    Fnegative_Specified: boolean;
    Ftext: WideString;
    Ftext_Specified: boolean;
    Ftype_: KeywordType;
    Ftype__Specified: boolean;
    procedure Setid(Index: Integer; const AInt64: Int64);
    function  id_Specified(Index: Integer): boolean;
    procedure SetmaxCpc(Index: Integer; const AInt64: Int64);
    function  maxCpc_Specified(Index: Integer): boolean;
    procedure Setnegative(Index: Integer; const ABoolean: Boolean);
    function  negative_Specified(Index: Integer): boolean;
    procedure Settext(Index: Integer; const AWideString: WideString);
    function  text_Specified(Index: Integer): boolean;
    procedure Settype_(Index: Integer; const AKeywordType: KeywordType);
    function  type__Specified(Index: Integer): boolean;
  published
    property id:       Int64        Index (IS_OPTN) read Fid write Setid stored id_Specified;
    property maxCpc:   Int64        Index (IS_OPTN) read FmaxCpc write SetmaxCpc stored maxCpc_Specified;
    property negative: Boolean      Index (IS_OPTN) read Fnegative write Setnegative stored negative_Specified;
    property text:     WideString   Index (IS_OPTN) read Ftext write Settext stored text_Specified;
    property type_:    KeywordType  Index (IS_OPTN) read Ftype_ write Settype_ stored type__Specified;
  end;



  // ************************************************************************ //
  // XML       : KeywordTrafficRequest, global, <complexType>
  // Namespace : https://adwords.google.com/api/adwords/v10
  // ************************************************************************ //
  KeywordTrafficRequest = class(TRemotable)
  private
    FkeywordText: WideString;
    FkeywordType: KeywordType;
    Flanguage: WideString;
  published
    property keywordText: WideString   read FkeywordText write FkeywordText;
    property keywordType: KeywordType  read FkeywordType write FkeywordType;
    property language:    WideString   read Flanguage write Flanguage;
  end;



  // ************************************************************************ //
  // XML       : useragent, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  useragent = class(TSOAPHeader)
  private
    FValue: WideString;
  published
    property Value: WideString  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : password, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  password = class(TSOAPHeader)
  private
    FValue: WideString;
  published
    property Value: WideString  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : email, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  email = class(TSOAPHeader)
  private
    FValue: WideString;
  published
    property Value: WideString  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : clientEmail, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  clientEmail = class(TSOAPHeader)
  private
    FValue: WideString;
  published
    property Value: WideString  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : clientCustomerId, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  clientCustomerId = class(TSOAPHeader)
  private
    FValue: WideString;
  published
    property Value: WideString  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : developerToken, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  developerToken = class(TSOAPHeader)
  private
    FValue: WideString;
  published
    property Value: WideString  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : applicationToken, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  applicationToken = class(TSOAPHeader)
  private
    FValue: WideString;
  published
    property Value: WideString  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : responseTime, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  responseTime = class(TSOAPHeader)
  private
    FValue: Int64;
  published
    property Value: Int64  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : operations, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  operations = class(TSOAPHeader)
  private
    FValue: Int64;
  published
    property Value: Int64  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : units, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  units = class(TSOAPHeader)
  private
    FValue: Int64;
  published
    property Value: Int64  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : requestId, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  requestId = class(TSOAPHeader)
  private
    FValue: WideString;
  published
    property Value: WideString  read FValue write FValue;
  end;

  languages       =  type WideString;      { "http://www.w3.org/2001/XMLSchema"[alias] }
  LanguageTarget = array of languages;          { "https://adwords.google.com/api/adwords/v10"[GblCplx] }
  networkTypes    = NetworkType;      { "https://adwords.google.com/api/adwords/v10"[alias] }
  NetworkTarget = array of networkTypes;        { "https://adwords.google.com/api/adwords/v10"[GblCplx] }
  cities          =  type WideString;      { "http://www.w3.org/2001/XMLSchema"[alias] }
  CityTargets = array of cities;                { "https://adwords.google.com/api/adwords/v10"[GblCplx] }
  countries       =  type WideString;      { "http://www.w3.org/2001/XMLSchema"[alias] }
  CountryTargets = array of countries;          { "https://adwords.google.com/api/adwords/v10"[GblCplx] }
  metros          =  type WideString;      { "http://www.w3.org/2001/XMLSchema"[alias] }
  MetroTargets = array of metros;               { "https://adwords.google.com/api/adwords/v10"[GblCplx] }


  // ************************************************************************ //
  // XML       : circles, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // ************************************************************************ //
  circles = class(Circle)
  private
  published
  end;

  regions         =  type WideString;      { "http://www.w3.org/2001/XMLSchema"[alias] }
  RegionTargets = array of regions;             { "https://adwords.google.com/api/adwords/v10"[GblCplx] }


  // ************************************************************************ //
  // XML       : GeoTarget, global, <complexType>
  // Namespace : https://adwords.google.com/api/adwords/v10
  // ************************************************************************ //
  GeoTarget = class(TRemotable)
  private
    FcityTargets: CityTargets;
    FcityTargets_Specified: boolean;
    FcountryTargets: CountryTargets;
    FcountryTargets_Specified: boolean;
    FmetroTargets: MetroTargets;
    FmetroTargets_Specified: boolean;
    FproximityTargets: ProximityTargets;
    FproximityTargets_Specified: boolean;
    FregionTargets: RegionTargets;
    FregionTargets_Specified: boolean;
    FtargetAll: Boolean;
    procedure SetcityTargets(Index: Integer; const ACityTargets: CityTargets);
    function  cityTargets_Specified(Index: Integer): boolean;
    procedure SetcountryTargets(Index: Integer; const ACountryTargets: CountryTargets);
    function  countryTargets_Specified(Index: Integer): boolean;
    procedure SetmetroTargets(Index: Integer; const AMetroTargets: MetroTargets);
    function  metroTargets_Specified(Index: Integer): boolean;
    procedure SetproximityTargets(Index: Integer; const AProximityTargets: ProximityTargets);
    function  proximityTargets_Specified(Index: Integer): boolean;
    procedure SetregionTargets(Index: Integer; const ARegionTargets: RegionTargets);
    function  regionTargets_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property cityTargets:      CityTargets       Index (IS_OPTN) read FcityTargets write SetcityTargets stored cityTargets_Specified;
    property countryTargets:   CountryTargets    Index (IS_OPTN) read FcountryTargets write SetcountryTargets stored countryTargets_Specified;
    property metroTargets:     MetroTargets      Index (IS_OPTN) read FmetroTargets write SetmetroTargets stored metroTargets_Specified;
    property proximityTargets: ProximityTargets  Index (IS_OPTN) read FproximityTargets write SetproximityTargets stored proximityTargets_Specified;
    property regionTargets:    RegionTargets     Index (IS_OPTN) read FregionTargets write SetregionTargets stored regionTargets_Specified;
    property targetAll:        Boolean           read FtargetAll write FtargetAll;
  end;

  Array_Of_KeywordEstimate = array of KeywordEstimate;   { "https://adwords.google.com/api/adwords/v10"[Gblunbnd] }


  // ************************************************************************ //
  // XML       : AdGroupEstimate, global, <complexType>
  // Namespace : https://adwords.google.com/api/adwords/v10
  // ************************************************************************ //
  AdGroupEstimate = class(TRemotable)
  private
    Fid: Integer;
    Fid_Specified: boolean;
    FkeywordEstimates: Array_Of_KeywordEstimate;
    procedure Setid(Index: Integer; const AInteger: Integer);
    function  id_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property id:               Integer                   Index (IS_OPTN) read Fid write Setid stored id_Specified;
    property keywordEstimates: Array_Of_KeywordEstimate  Index (IS_UNBD) read FkeywordEstimates write FkeywordEstimates;
  end;

  Array_Of_KeywordRequest = array of KeywordRequest;   { "https://adwords.google.com/api/adwords/v10"[Gblunbnd] }


  // ************************************************************************ //
  // XML       : AdGroupRequest, global, <complexType>
  // Namespace : https://adwords.google.com/api/adwords/v10
  // ************************************************************************ //
  AdGroupRequest = class(TRemotable)
  private
    Fid: Integer;
    Fid_Specified: boolean;
    FkeywordRequests: Array_Of_KeywordRequest;
    FmaxCpc: Int64;
    FmaxCpc_Specified: boolean;
    procedure Setid(Index: Integer; const AInteger: Integer);
    function  id_Specified(Index: Integer): boolean;
    procedure SetmaxCpc(Index: Integer; const AInt64: Int64);
    function  maxCpc_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property id:              Integer                  Index (IS_OPTN or IS_NLBL) read Fid write Setid stored id_Specified;
    property keywordRequests: Array_Of_KeywordRequest  Index (IS_UNBD) read FkeywordRequests write FkeywordRequests;
    property maxCpc:          Int64                    Index (IS_OPTN) read FmaxCpc write SetmaxCpc stored maxCpc_Specified;
  end;

  Array_Of_ApiError = array of ApiError;        { "https://adwords.google.com/api/adwords/v10"[Gblunbnd] }


  // ************************************************************************ //
  // XML       : ApiException, global, <complexType>
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Info      : Fault
  // ************************************************************************ //
  ApiException = class(ERemotableException)
  private
    Fcode: Integer;
    Ferrors: Array_Of_ApiError;
    Finternal: Boolean;
    Fmessage_: WideString;
    Ftrigger: WideString;
  public
    destructor Destroy; override;
  published
    property code:     Integer            read Fcode write Fcode;
    property errors:   Array_Of_ApiError  Index (IS_UNBD or IS_NLBL) read Ferrors write Ferrors;
    property internal: Boolean            read Finternal write Finternal;
    property message_: WideString         Index (IS_NLBL) read Fmessage_ write Fmessage_;
    property trigger:  WideString         Index (IS_NLBL) read Ftrigger write Ftrigger;
  end;



  // ************************************************************************ //
  // XML       : fault, global, <element>
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Info      : Fault
  // ************************************************************************ //
  fault = class(ApiException)
  private
  published
  end;

  Array_Of_AdGroupEstimate = array of AdGroupEstimate;   { "https://adwords.google.com/api/adwords/v10"[Gblunbnd] }


  // ************************************************************************ //
  // XML       : CampaignEstimate, global, <complexType>
  // Namespace : https://adwords.google.com/api/adwords/v10
  // ************************************************************************ //
  CampaignEstimate = class(TRemotable)
  private
    FadGroupEstimates: Array_Of_AdGroupEstimate;
    Fid: Integer;
    Fid_Specified: boolean;
    procedure Setid(Index: Integer; const AInteger: Integer);
    function  id_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property adGroupEstimates: Array_Of_AdGroupEstimate  Index (IS_UNBD) read FadGroupEstimates write FadGroupEstimates;
    property id:               Integer                   Index (IS_OPTN) read Fid write Setid stored id_Specified;
  end;

  Array_Of_AdGroupRequest = array of AdGroupRequest;   { "https://adwords.google.com/api/adwords/v10"[Gblunbnd] }


  // ************************************************************************ //
  // XML       : CampaignRequest, global, <complexType>
  // Namespace : https://adwords.google.com/api/adwords/v10
  // ************************************************************************ //
  CampaignRequest = class(TRemotable)
  private
    FadGroupRequests: Array_Of_AdGroupRequest;
    FgeoTargeting: GeoTarget;
    FgeoTargeting_Specified: boolean;
    Fid: Integer;
    Fid_Specified: boolean;
    FlanguageTargeting: LanguageTarget;
    FlanguageTargeting_Specified: boolean;
    FnetworkTargeting: NetworkTarget;
    FnetworkTargeting_Specified: boolean;
    procedure SetgeoTargeting(Index: Integer; const AGeoTarget: GeoTarget);
    function  geoTargeting_Specified(Index: Integer): boolean;
    procedure Setid(Index: Integer; const AInteger: Integer);
    function  id_Specified(Index: Integer): boolean;
    procedure SetlanguageTargeting(Index: Integer; const ALanguageTarget: LanguageTarget);
    function  languageTargeting_Specified(Index: Integer): boolean;
    procedure SetnetworkTargeting(Index: Integer; const ANetworkTarget: NetworkTarget);
    function  networkTargeting_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property adGroupRequests:   Array_Of_AdGroupRequest  Index (IS_UNBD) read FadGroupRequests write FadGroupRequests;
    property geoTargeting:      GeoTarget                Index (IS_OPTN) read FgeoTargeting write SetgeoTargeting stored geoTargeting_Specified;
    property id:                Integer                  Index (IS_OPTN) read Fid write Setid stored id_Specified;
    property languageTargeting: LanguageTarget           Index (IS_OPTN or IS_NLBL) read FlanguageTargeting write SetlanguageTargeting stored languageTargeting_Specified;
    property networkTargeting:  NetworkTarget            Index (IS_OPTN) read FnetworkTargeting write SetnetworkTargeting stored networkTargeting_Specified;
  end;

  Array_Of_KeywordTrafficRequest = array of KeywordTrafficRequest;   { "https://adwords.google.com/api/adwords/v10"[Gblunbnd] }
  Array_Of_KeywordTraffic = array of KeywordTraffic;   { "https://adwords.google.com/api/adwords/v10"[Gblunbnd] }
  Array_Of_CampaignRequest = array of CampaignRequest;   { "https://adwords.google.com/api/adwords/v10"[Gblunbnd] }
  Array_Of_CampaignEstimate = array of CampaignEstimate;   { "https://adwords.google.com/api/adwords/v10"[Gblunbnd] }

  // ************************************************************************ //
  // Namespace : https://adwords.google.com/api/adwords/v10
  // transport : http://schemas.xmlsoap.org/soap/http
  // style     : document
  // binding   : TrafficEstimatorServiceSoapBinding
  // service   : TrafficEstimatorService
  // port      : TrafficEstimatorService
  // URL       : https://adwords.google.com/api/adwords/v10/TrafficEstimatorService
  // ************************************************************************ //
  TrafficEstimatorInterface = interface(IInvokable)
  ['{DA291CD4-CFA7-A713-BF96-933EEFFEF667}']

    // Headers: useragent:pIn, password:pIn, email:pIn, clientEmail:pIn, clientCustomerId:pIn, developerToken:pIn, applicationToken:pIn, responseTime:pOut, operations:pOut, units:pOut, requestId:pOut
    function  checkKeywordTraffic(const requests: Array_Of_KeywordTrafficRequest): Array_Of_KeywordTraffic; stdcall;

    // Headers: useragent:pIn, password:pIn, email:pIn, clientEmail:pIn, clientCustomerId:pIn, developerToken:pIn, applicationToken:pIn, responseTime:pOut, operations:pOut, units:pOut, requestId:pOut
    function  estimateAdGroupList(const adGroupRequests: Array_Of_AdGroupRequest): Array_Of_AdGroupEstimate; stdcall;

    // Headers: useragent:pIn, password:pIn, email:pIn, clientEmail:pIn, clientCustomerId:pIn, developerToken:pIn, applicationToken:pIn, responseTime:pOut, operations:pOut, units:pOut, requestId:pOut
    function  estimateCampaignList(const campaignRequests: Array_Of_CampaignRequest): Array_Of_CampaignEstimate; stdcall;

    // Headers: useragent:pIn, password:pIn, email:pIn, clientEmail:pIn, clientCustomerId:pIn, developerToken:pIn, applicationToken:pIn, responseTime:pOut, operations:pOut, units:pOut, requestId:pOut
    function  estimateKeywordList(const keywordRequests: Array_Of_KeywordRequest): Array_Of_KeywordEstimate; stdcall;
  end;

function GetTrafficEstimatorInterface(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): TrafficEstimatorInterface;


implementation
  uses SysUtils;

function GetTrafficEstimatorInterface(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): TrafficEstimatorInterface;
const
  defWSDL = 'https://adwords.google.com/api/adwords/v10/TrafficEstimatorService?wsdl';
  defURL  = 'https://adwords.google.com/api/adwords/v10/TrafficEstimatorService';
  defSvc  = 'TrafficEstimatorService';
  defPrt  = 'TrafficEstimatorService';
var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin
    if UseWSDL then
      Addr := defWSDL
    else
      Addr := defURL;
  end;
  if HTTPRIO = nil then
    RIO := THTTPRIO.Create(nil)
  else
    RIO := HTTPRIO;
  try
    Result := (RIO as TrafficEstimatorInterface);
    if UseWSDL then
    begin
      RIO.WSDLLocation := Addr;
      RIO.Service := defSvc;
      RIO.Port := defPrt;
    end else
      RIO.URL := Addr;
  finally
    if (Result = nil) and (HTTPRIO = nil) then
      RIO.Free;
  end;
end;


procedure ApiError.Setfield(Index: Integer; const AWideString: WideString);
begin
  Ffield := AWideString;
  Ffield_Specified := True;
end;

function ApiError.field_Specified(Index: Integer): boolean;
begin
  Result := Ffield_Specified;
end;

procedure ApiError.SettextIndex(Index: Integer; const AInteger: Integer);
begin
  FtextIndex := AInteger;
  FtextIndex_Specified := True;
end;

function ApiError.textIndex_Specified(Index: Integer): boolean;
begin
  Result := FtextIndex_Specified;
end;

procedure ApiError.SettextLength(Index: Integer; const AInteger: Integer);
begin
  FtextLength := AInteger;
  FtextLength_Specified := True;
end;

function ApiError.textLength_Specified(Index: Integer): boolean;
begin
  Result := FtextLength_Specified;
end;

procedure ApiError.Settrigger(Index: Integer; const AWideString: WideString);
begin
  Ftrigger := AWideString;
  Ftrigger_Specified := True;
end;

function ApiError.trigger_Specified(Index: Integer): boolean;
begin
  Result := Ftrigger_Specified;
end;

procedure KeywordEstimate.Setid(Index: Integer; const AInt64: Int64);
begin
  Fid := AInt64;
  Fid_Specified := True;
end;

function KeywordEstimate.id_Specified(Index: Integer): boolean;
begin
  Result := Fid_Specified;
end;

procedure KeywordRequest.Setid(Index: Integer; const AInt64: Int64);
begin
  Fid := AInt64;
  Fid_Specified := True;
end;

function KeywordRequest.id_Specified(Index: Integer): boolean;
begin
  Result := Fid_Specified;
end;

procedure KeywordRequest.SetmaxCpc(Index: Integer; const AInt64: Int64);
begin
  FmaxCpc := AInt64;
  FmaxCpc_Specified := True;
end;

function KeywordRequest.maxCpc_Specified(Index: Integer): boolean;
begin
  Result := FmaxCpc_Specified;
end;

procedure KeywordRequest.Setnegative(Index: Integer; const ABoolean: Boolean);
begin
  Fnegative := ABoolean;
  Fnegative_Specified := True;
end;

function KeywordRequest.negative_Specified(Index: Integer): boolean;
begin
  Result := Fnegative_Specified;
end;

procedure KeywordRequest.Settext(Index: Integer; const AWideString: WideString);
begin
  Ftext := AWideString;
  Ftext_Specified := True;
end;

function KeywordRequest.text_Specified(Index: Integer): boolean;
begin
  Result := Ftext_Specified;
end;

procedure KeywordRequest.Settype_(Index: Integer; const AKeywordType: KeywordType);
begin
  Ftype_ := AKeywordType;
  Ftype__Specified := True;
end;

function KeywordRequest.type__Specified(Index: Integer): boolean;
begin
  Result := Ftype__Specified;
end;

destructor GeoTarget.Destroy;
var
  I: Integer;
begin
  for I := 0 to Length(FproximityTargets)-1 do
    FreeAndNil(FproximityTargets[I]);
  SetLength(FproximityTargets, 0);
  inherited Destroy;
end;

procedure GeoTarget.SetcityTargets(Index: Integer; const ACityTargets: CityTargets);
begin
  FcityTargets := ACityTargets;
  FcityTargets_Specified := True;
end;

function GeoTarget.cityTargets_Specified(Index: Integer): boolean;
begin
  Result := FcityTargets_Specified;
end;

procedure GeoTarget.SetcountryTargets(Index: Integer; const ACountryTargets: CountryTargets);
begin
  FcountryTargets := ACountryTargets;
  FcountryTargets_Specified := True;
end;

function GeoTarget.countryTargets_Specified(Index: Integer): boolean;
begin
  Result := FcountryTargets_Specified;
end;

procedure GeoTarget.SetmetroTargets(Index: Integer; const AMetroTargets: MetroTargets);
begin
  FmetroTargets := AMetroTargets;
  FmetroTargets_Specified := True;
end;

function GeoTarget.metroTargets_Specified(Index: Integer): boolean;
begin
  Result := FmetroTargets_Specified;
end;

procedure GeoTarget.SetproximityTargets(Index: Integer; const AProximityTargets: ProximityTargets);
begin
  FproximityTargets := AProximityTargets;
  FproximityTargets_Specified := True;
end;

function GeoTarget.proximityTargets_Specified(Index: Integer): boolean;
begin
  Result := FproximityTargets_Specified;
end;

procedure GeoTarget.SetregionTargets(Index: Integer; const ARegionTargets: RegionTargets);
begin
  FregionTargets := ARegionTargets;
  FregionTargets_Specified := True;
end;

function GeoTarget.regionTargets_Specified(Index: Integer): boolean;
begin
  Result := FregionTargets_Specified;
end;

destructor AdGroupEstimate.Destroy;
var
  I: Integer;
begin
  for I := 0 to Length(FkeywordEstimates)-1 do
    FreeAndNil(FkeywordEstimates[I]);
  SetLength(FkeywordEstimates, 0);
  inherited Destroy;
end;

procedure AdGroupEstimate.Setid(Index: Integer; const AInteger: Integer);
begin
  Fid := AInteger;
  Fid_Specified := True;
end;

function AdGroupEstimate.id_Specified(Index: Integer): boolean;
begin
  Result := Fid_Specified;
end;

destructor AdGroupRequest.Destroy;
var
  I: Integer;
begin
  for I := 0 to Length(FkeywordRequests)-1 do
    FreeAndNil(FkeywordRequests[I]);
  SetLength(FkeywordRequests, 0);
  inherited Destroy;
end;

procedure AdGroupRequest.Setid(Index: Integer; const AInteger: Integer);
begin
  Fid := AInteger;
  Fid_Specified := True;
end;

function AdGroupRequest.id_Specified(Index: Integer): boolean;
begin
  Result := Fid_Specified;
end;

procedure AdGroupRequest.SetmaxCpc(Index: Integer; const AInt64: Int64);
begin
  FmaxCpc := AInt64;
  FmaxCpc_Specified := True;
end;

function AdGroupRequest.maxCpc_Specified(Index: Integer): boolean;
begin
  Result := FmaxCpc_Specified;
end;

destructor ApiException.Destroy;
var
  I: Integer;
begin
  for I := 0 to Length(Ferrors)-1 do
    FreeAndNil(Ferrors[I]);
  SetLength(Ferrors, 0);
  inherited Destroy;
end;

destructor CampaignEstimate.Destroy;
var
  I: Integer;
begin
  for I := 0 to Length(FadGroupEstimates)-1 do
    FreeAndNil(FadGroupEstimates[I]);
  SetLength(FadGroupEstimates, 0);
  inherited Destroy;
end;

procedure CampaignEstimate.Setid(Index: Integer; const AInteger: Integer);
begin
  Fid := AInteger;
  Fid_Specified := True;
end;

function CampaignEstimate.id_Specified(Index: Integer): boolean;
begin
  Result := Fid_Specified;
end;

destructor CampaignRequest.Destroy;
var
  I: Integer;
begin
  for I := 0 to Length(FadGroupRequests)-1 do
    FreeAndNil(FadGroupRequests[I]);
  SetLength(FadGroupRequests, 0);
  FreeAndNil(FgeoTargeting);
  inherited Destroy;
end;

procedure CampaignRequest.SetgeoTargeting(Index: Integer; const AGeoTarget: GeoTarget);
begin
  FgeoTargeting := AGeoTarget;
  FgeoTargeting_Specified := True;
end;

function CampaignRequest.geoTargeting_Specified(Index: Integer): boolean;
begin
  Result := FgeoTargeting_Specified;
end;

procedure CampaignRequest.Setid(Index: Integer; const AInteger: Integer);
begin
  Fid := AInteger;
  Fid_Specified := True;
end;

function CampaignRequest.id_Specified(Index: Integer): boolean;
begin
  Result := Fid_Specified;
end;

procedure CampaignRequest.SetlanguageTargeting(Index: Integer; const ALanguageTarget: LanguageTarget);
begin
  FlanguageTargeting := ALanguageTarget;
  FlanguageTargeting_Specified := True;
end;

function CampaignRequest.languageTargeting_Specified(Index: Integer): boolean;
begin
  Result := FlanguageTargeting_Specified;
end;

procedure CampaignRequest.SetnetworkTargeting(Index: Integer; const ANetworkTarget: NetworkTarget);
begin
  FnetworkTargeting := ANetworkTarget;
  FnetworkTargeting_Specified := True;
end;

function CampaignRequest.networkTargeting_Specified(Index: Integer): boolean;
begin
  Result := FnetworkTargeting_Specified;
end;

initialization
  InvRegistry.RegisterInterface(TypeInfo(TrafficEstimatorInterface), 'https://adwords.google.com/api/adwords/v10', 'UTF-8');
  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(TrafficEstimatorInterface), '');
  InvRegistry.RegisterInvokeOptions(TypeInfo(TrafficEstimatorInterface), ioDocument);
  InvRegistry.RegisterHeaderClass(TypeInfo(TrafficEstimatorInterface), useragent, 'useragent', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(TrafficEstimatorInterface), password, 'password', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(TrafficEstimatorInterface), email, 'email', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(TrafficEstimatorInterface), clientEmail, 'clientEmail', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(TrafficEstimatorInterface), clientCustomerId, 'clientCustomerId', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(TrafficEstimatorInterface), developerToken, 'developerToken', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(TrafficEstimatorInterface), applicationToken, 'applicationToken', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(TrafficEstimatorInterface), responseTime, 'responseTime', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(TrafficEstimatorInterface), operations, 'operations', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(TrafficEstimatorInterface), units, 'units', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(TrafficEstimatorInterface), requestId, 'requestId', 'https://adwords.google.com/api/adwords/v10');
  RemClassRegistry.RegisterXSClass(ApiError, 'https://adwords.google.com/api/adwords/v10', 'ApiError');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(ApiError), 'index_', 'index');
  RemClassRegistry.RegisterXSClass(Circle, 'https://adwords.google.com/api/adwords/v10', 'Circle');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ProximityTargets), 'https://adwords.google.com/api/adwords/v10', 'ProximityTargets');
  RemClassRegistry.RegisterXSClass(KeywordEstimate, 'https://adwords.google.com/api/adwords/v10', 'KeywordEstimate');
  RemClassRegistry.RegisterXSInfo(TypeInfo(KeywordType), 'https://adwords.google.com/api/adwords/v10', 'KeywordType');
  RemClassRegistry.RegisterXSClass(KeywordRequest, 'https://adwords.google.com/api/adwords/v10', 'KeywordRequest');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(KeywordRequest), 'type_', 'type');
  RemClassRegistry.RegisterXSClass(KeywordTrafficRequest, 'https://adwords.google.com/api/adwords/v10', 'KeywordTrafficRequest');
  RemClassRegistry.RegisterXSInfo(TypeInfo(NetworkType), 'https://adwords.google.com/api/adwords/v10', 'NetworkType');
  RemClassRegistry.RegisterXSInfo(TypeInfo(KeywordTraffic), 'https://adwords.google.com/api/adwords/v10', 'KeywordTraffic');
  RemClassRegistry.RegisterXSClass(useragent, 'https://adwords.google.com/api/adwords/v10', 'useragent');
  RemClassRegistry.RegisterSerializeOptions(useragent, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(password, 'https://adwords.google.com/api/adwords/v10', 'password');
  RemClassRegistry.RegisterSerializeOptions(password, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(email, 'https://adwords.google.com/api/adwords/v10', 'email');
  RemClassRegistry.RegisterSerializeOptions(email, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(clientEmail, 'https://adwords.google.com/api/adwords/v10', 'clientEmail');
  RemClassRegistry.RegisterSerializeOptions(clientEmail, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(clientCustomerId, 'https://adwords.google.com/api/adwords/v10', 'clientCustomerId');
  RemClassRegistry.RegisterSerializeOptions(clientCustomerId, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(developerToken, 'https://adwords.google.com/api/adwords/v10', 'developerToken');
  RemClassRegistry.RegisterSerializeOptions(developerToken, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(applicationToken, 'https://adwords.google.com/api/adwords/v10', 'applicationToken');
  RemClassRegistry.RegisterSerializeOptions(applicationToken, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(responseTime, 'https://adwords.google.com/api/adwords/v10', 'responseTime');
  RemClassRegistry.RegisterSerializeOptions(responseTime, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(operations, 'https://adwords.google.com/api/adwords/v10', 'operations');
  RemClassRegistry.RegisterSerializeOptions(operations, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(units, 'https://adwords.google.com/api/adwords/v10', 'units');
  RemClassRegistry.RegisterSerializeOptions(units, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(requestId, 'https://adwords.google.com/api/adwords/v10', 'requestId');
  RemClassRegistry.RegisterSerializeOptions(requestId, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSInfo(TypeInfo(languages), 'http://www.w3.org/2001/XMLSchema', 'languages');
  RemClassRegistry.RegisterXSInfo(TypeInfo(LanguageTarget), 'https://adwords.google.com/api/adwords/v10', 'LanguageTarget');
  RemClassRegistry.RegisterXSInfo(TypeInfo(networkTypes), 'https://adwords.google.com/api/adwords/v10', 'networkTypes');
  RemClassRegistry.RegisterXSInfo(TypeInfo(NetworkTarget), 'https://adwords.google.com/api/adwords/v10', 'NetworkTarget');
  RemClassRegistry.RegisterXSInfo(TypeInfo(cities), 'http://www.w3.org/2001/XMLSchema', 'cities');
  RemClassRegistry.RegisterXSInfo(TypeInfo(CityTargets), 'https://adwords.google.com/api/adwords/v10', 'CityTargets');
  RemClassRegistry.RegisterXSInfo(TypeInfo(countries), 'http://www.w3.org/2001/XMLSchema', 'countries');
  RemClassRegistry.RegisterXSInfo(TypeInfo(CountryTargets), 'https://adwords.google.com/api/adwords/v10', 'CountryTargets');
  RemClassRegistry.RegisterXSInfo(TypeInfo(metros), 'http://www.w3.org/2001/XMLSchema', 'metros');
  RemClassRegistry.RegisterXSInfo(TypeInfo(MetroTargets), 'https://adwords.google.com/api/adwords/v10', 'MetroTargets');
  RemClassRegistry.RegisterXSClass(circles, 'https://adwords.google.com/api/adwords/v10', 'circles');
  RemClassRegistry.RegisterXSInfo(TypeInfo(regions), 'http://www.w3.org/2001/XMLSchema', 'regions');
  RemClassRegistry.RegisterXSInfo(TypeInfo(RegionTargets), 'https://adwords.google.com/api/adwords/v10', 'RegionTargets');
  RemClassRegistry.RegisterXSClass(GeoTarget, 'https://adwords.google.com/api/adwords/v10', 'GeoTarget');
  RemClassRegistry.RegisterXSInfo(TypeInfo(Array_Of_KeywordEstimate), 'https://adwords.google.com/api/adwords/v10', 'Array_Of_KeywordEstimate');
  RemClassRegistry.RegisterSerializeOptions(TypeInfo(Array_Of_KeywordEstimate), [xoInlineArrays]);
  RemClassRegistry.RegisterXSClass(AdGroupEstimate, 'https://adwords.google.com/api/adwords/v10', 'AdGroupEstimate');
  RemClassRegistry.RegisterXSInfo(TypeInfo(Array_Of_KeywordRequest), 'https://adwords.google.com/api/adwords/v10', 'Array_Of_KeywordRequest');
  RemClassRegistry.RegisterSerializeOptions(TypeInfo(Array_Of_KeywordRequest), [xoInlineArrays]);
  RemClassRegistry.RegisterXSClass(AdGroupRequest, 'https://adwords.google.com/api/adwords/v10', 'AdGroupRequest');
  RemClassRegistry.RegisterXSInfo(TypeInfo(Array_Of_ApiError), 'https://adwords.google.com/api/adwords/v10', 'Array_Of_ApiError');
  RemClassRegistry.RegisterXSClass(ApiException, 'https://adwords.google.com/api/adwords/v10', 'ApiException');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(ApiException), 'message_', 'message');
  RemClassRegistry.RegisterXSClass(fault, 'https://adwords.google.com/api/adwords/v10', 'fault');
  RemClassRegistry.RegisterXSInfo(TypeInfo(Array_Of_AdGroupEstimate), 'https://adwords.google.com/api/adwords/v10', 'Array_Of_AdGroupEstimate');
  RemClassRegistry.RegisterSerializeOptions(TypeInfo(Array_Of_AdGroupEstimate), [xoInlineArrays]);
  RemClassRegistry.RegisterXSClass(CampaignEstimate, 'https://adwords.google.com/api/adwords/v10', 'CampaignEstimate');
  RemClassRegistry.RegisterXSInfo(TypeInfo(Array_Of_AdGroupRequest), 'https://adwords.google.com/api/adwords/v10', 'Array_Of_AdGroupRequest');
  RemClassRegistry.RegisterSerializeOptions(TypeInfo(Array_Of_AdGroupRequest), [xoInlineArrays]);
  RemClassRegistry.RegisterXSClass(CampaignRequest, 'https://adwords.google.com/api/adwords/v10', 'CampaignRequest');
  RemClassRegistry.RegisterXSInfo(TypeInfo(Array_Of_KeywordTrafficRequest), 'https://adwords.google.com/api/adwords/v10', 'Array_Of_KeywordTrafficRequest');
  RemClassRegistry.RegisterSerializeOptions(TypeInfo(Array_Of_KeywordTrafficRequest), [xoInlineArrays]);
  RemClassRegistry.RegisterXSInfo(TypeInfo(Array_Of_KeywordTraffic), 'https://adwords.google.com/api/adwords/v10', 'Array_Of_KeywordTraffic');
  RemClassRegistry.RegisterSerializeOptions(TypeInfo(Array_Of_KeywordTraffic), [xoInlineArrays]);
  RemClassRegistry.RegisterXSInfo(TypeInfo(Array_Of_CampaignRequest), 'https://adwords.google.com/api/adwords/v10', 'Array_Of_CampaignRequest');
  RemClassRegistry.RegisterSerializeOptions(TypeInfo(Array_Of_CampaignRequest), [xoInlineArrays]);
  RemClassRegistry.RegisterXSInfo(TypeInfo(Array_Of_CampaignEstimate), 'https://adwords.google.com/api/adwords/v10', 'Array_Of_CampaignEstimate');
  RemClassRegistry.RegisterSerializeOptions(TypeInfo(Array_Of_CampaignEstimate), [xoInlineArrays]);

end.
-------------- next part --------------
// ************************************************************************ //
// The types declared in this file were generated from data read from the
// WSDL File described below:
// WSDL     : https://adwords.google.com/api/adwords/v10/InfoService?wsdl
//  >Import : https://adwords.google.com/api/adwords/v10/InfoService?wsdl:0
// Encoding : UTF-8
// Version  : 1.0
// (26/04/2007 6:50:13 PM - * $Rev: 5154 $)
// ************************************************************************ //

unit InfoService;

interface

uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;

const
  IS_OPTN = $0001;
  IS_UNBD = $0002;
  IS_NLBL = $0004;
  IS_UNQL = $0008;
  IS_ATTR = $0010;
  IS_TEXT = $0020;

type

  // ************************************************************************ //
  // The following types, referred to in the WSDL document are not being represented
  // in this file. They are either aliases[@] of other types represented or were referred
  // to but never[!] declared in the document. The types from the latter category
  // typically map to predefined/known XML or Borland types; however, they could also 
  // indicate incorrect WSDL documents that failed to declare or import a schema type.
  // ************************************************************************ //
  // !:int             - "http://www.w3.org/2001/XMLSchema"
  // !:string          - "http://www.w3.org/2001/XMLSchema"
  // !:boolean         - "http://www.w3.org/2001/XMLSchema"
  // !:long            - "http://www.w3.org/2001/XMLSchema"
  // !:date            - "http://www.w3.org/2001/XMLSchema"

  ApiError             = class;                 { "https://adwords.google.com/api/adwords/v10"[GblCplx] }
  ClientUsageRecord    = class;                 { "https://adwords.google.com/api/adwords/v10"[GblCplx] }
  useragent            = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  password             = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  email                = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  clientEmail          = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  clientCustomerId     = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  developerToken       = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  applicationToken     = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  responseTime         = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  operations           = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  units                = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  requestId            = class;                 { "https://adwords.google.com/api/adwords/v10"[Hdr][alias] }
  ApiException         = class;                 { "https://adwords.google.com/api/adwords/v10"[Flt][GblCplx] }
  fault                = class;                 { "https://adwords.google.com/api/adwords/v10"[Flt][GblElm] }



  // ************************************************************************ //
  // XML       : ApiError, global, <complexType>
  // Namespace : https://adwords.google.com/api/adwords/v10
  // ************************************************************************ //
  ApiError = class(TRemotable)
  private
    Fcode: Integer;
    Fdetail: WideString;
    Ffield: WideString;
    Ffield_Specified: boolean;
    Findex_: Integer;
    FisExemptable: Boolean;
    FtextIndex: Integer;
    FtextIndex_Specified: boolean;
    FtextLength: Integer;
    FtextLength_Specified: boolean;
    Ftrigger: WideString;
    Ftrigger_Specified: boolean;
    procedure Setfield(Index: Integer; const AWideString: WideString);
    function  field_Specified(Index: Integer): boolean;
    procedure SettextIndex(Index: Integer; const AInteger: Integer);
    function  textIndex_Specified(Index: Integer): boolean;
    procedure SettextLength(Index: Integer; const AInteger: Integer);
    function  textLength_Specified(Index: Integer): boolean;
    procedure Settrigger(Index: Integer; const AWideString: WideString);
    function  trigger_Specified(Index: Integer): boolean;
  published
    property code:         Integer     read Fcode write Fcode;
    property detail:       WideString  read Fdetail write Fdetail;
    property field:        WideString  Index (IS_OPTN) read Ffield write Setfield stored field_Specified;
    property index_:       Integer     read Findex_ write Findex_;
    property isExemptable: Boolean     read FisExemptable write FisExemptable;
    property textIndex:    Integer     Index (IS_OPTN) read FtextIndex write SettextIndex stored textIndex_Specified;
    property textLength:   Integer     Index (IS_OPTN) read FtextLength write SettextLength stored textLength_Specified;
    property trigger:      WideString  Index (IS_OPTN) read Ftrigger write Settrigger stored trigger_Specified;
  end;



  // ************************************************************************ //
  // XML       : ClientUsageRecord, global, <complexType>
  // Namespace : https://adwords.google.com/api/adwords/v10
  // ************************************************************************ //
  ClientUsageRecord = class(TRemotable)
  private
    FclientEmail: WideString;
    FquotaUnits: Int64;
  published
    property clientEmail: WideString  read FclientEmail write FclientEmail;
    property quotaUnits:  Int64       read FquotaUnits write FquotaUnits;
  end;



  // ************************************************************************ //
  // XML       : useragent, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  useragent = class(TSOAPHeader)
  private
    FValue: WideString;
  published
    property Value: WideString  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : password, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  password = class(TSOAPHeader)
  private
    FValue: WideString;
  published
    property Value: WideString  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : email, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  email = class(TSOAPHeader)
  private
    FValue: WideString;
  published
    property Value: WideString  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : clientEmail, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  clientEmail = class(TSOAPHeader)
  private
    FValue: WideString;
  published
    property Value: WideString  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : clientCustomerId, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  clientCustomerId = class(TSOAPHeader)
  private
    FValue: WideString;
  published
    property Value: WideString  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : developerToken, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  developerToken = class(TSOAPHeader)
  private
    FValue: WideString;
  published
    property Value: WideString  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : applicationToken, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  applicationToken = class(TSOAPHeader)
  private
    FValue: WideString;
  published
    property Value: WideString  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : responseTime, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  responseTime = class(TSOAPHeader)
  private
    FValue: Int64;
  published
    property Value: Int64  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : operations, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  operations = class(TSOAPHeader)
  private
    FValue: Int64;
  published
    property Value: Int64  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : units, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  units = class(TSOAPHeader)
  private
    FValue: Int64;
  published
    property Value: Int64  read FValue write FValue;
  end;



  // ************************************************************************ //
  // XML       : requestId, alias
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Serializtn: [xoSimpleTypeWrapper]
  // Info      : Header
  // ************************************************************************ //
  requestId = class(TSOAPHeader)
  private
    FValue: WideString;
  published
    property Value: WideString  read FValue write FValue;
  end;

  Array_Of_ApiError = array of ApiError;        { "https://adwords.google.com/api/adwords/v10"[Gblunbnd] }


  // ************************************************************************ //
  // XML       : ApiException, global, <complexType>
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Info      : Fault
  // ************************************************************************ //
  ApiException = class(ERemotableException)
  private
    Fcode: Integer;
    Ferrors: Array_Of_ApiError;
    Finternal: Boolean;
    Fmessage_: WideString;
    Ftrigger: WideString;
  public
    destructor Destroy; override;
  published
    property code:     Integer            read Fcode write Fcode;
    property errors:   Array_Of_ApiError  Index (IS_UNBD or IS_NLBL) read Ferrors write Ferrors;
    property internal: Boolean            read Finternal write Finternal;
    property message_: WideString         Index (IS_NLBL) read Fmessage_ write Fmessage_;
    property trigger:  WideString         Index (IS_NLBL) read Ftrigger write Ftrigger;
  end;



  // ************************************************************************ //
  // XML       : fault, global, <element>
  // Namespace : https://adwords.google.com/api/adwords/v10
  // Info      : Fault
  // ************************************************************************ //
  fault = class(ApiException)
  private
  published
  end;

  Array_Of_string = array of WideString;        { "http://www.w3.org/2001/XMLSchema"[Gblunbnd] }
  Array_Of_ClientUsageRecord = array of ClientUsageRecord;   { "https://adwords.google.com/api/adwords/v10"[Gblunbnd] }

  // ************************************************************************ //
  // Namespace : https://adwords.google.com/api/adwords/v10
  // transport : http://schemas.xmlsoap.org/soap/http
  // style     : document
  // binding   : InfoServiceSoapBinding
  // service   : InfoService
  // port      : InfoService
  // URL       : https://adwords.google.com/api/adwords/v10/InfoService
  // ************************************************************************ //
  InfoInterface = interface(IInvokable)
  ['{C9DFB757-3500-B070-5EF2-260E77A5696F}']

    // Headers: useragent:pIn, password:pIn, email:pIn, clientEmail:pIn, clientCustomerId:pIn, developerToken:pIn, applicationToken:pIn, responseTime:pOut, operations:pOut, units:pOut, requestId:pOut
    function  getFreeUsageQuotaThisMonth: Int64; stdcall;

    // Headers: useragent:pIn, password:pIn, email:pIn, clientEmail:pIn, clientCustomerId:pIn, developerToken:pIn, applicationToken:pIn, responseTime:pOut, operations:pOut, units:pOut, requestId:pOut
    function  getMethodCost(const service: WideString; const method: WideString; const date: TXSDate): Integer; stdcall;

    // Headers: useragent:pIn, password:pIn, email:pIn, clientEmail:pIn, clientCustomerId:pIn, developerToken:pIn, applicationToken:pIn, responseTime:pOut, operations:pOut, units:pOut, requestId:pOut
    function  getOperationCount(const startDate: TXSDate; const endDate: TXSDate): Int64; stdcall;

    // Headers: useragent:pIn, password:pIn, email:pIn, clientEmail:pIn, clientCustomerId:pIn, developerToken:pIn, applicationToken:pIn, responseTime:pOut, operations:pOut, units:pOut, requestId:pOut
    function  getOperationsQuotaThisMonth: Int64; stdcall;

    // Headers: useragent:pIn, password:pIn, email:pIn, clientEmail:pIn, clientCustomerId:pIn, developerToken:pIn, applicationToken:pIn, responseTime:pOut, operations:pOut, units:pOut, requestId:pOut
    function  getUnitCount(const startDate: TXSDate; const endDate: TXSDate): Int64; stdcall;

    // Headers: useragent:pIn, password:pIn, email:pIn, clientEmail:pIn, clientCustomerId:pIn, developerToken:pIn, applicationToken:pIn, responseTime:pOut, operations:pOut, units:pOut, requestId:pOut
    function  getUnitCountForClients(const clientEmails: Array_Of_string; const startDate: TXSDate; const endDate: TXSDate): Array_Of_ClientUsageRecord; stdcall;

    // Headers: useragent:pIn, password:pIn, email:pIn, clientEmail:pIn, clientCustomerId:pIn, developerToken:pIn, applicationToken:pIn, responseTime:pOut, operations:pOut, units:pOut, requestId:pOut
    function  getUnitCountForMethod(const service: WideString; const method: WideString; const startDate: TXSDate; const endDate: TXSDate): Int64; stdcall;

    // Headers: useragent:pIn, password:pIn, email:pIn, clientEmail:pIn, clientCustomerId:pIn, developerToken:pIn, applicationToken:pIn, responseTime:pOut, operations:pOut, units:pOut, requestId:pOut
    function  getUsageQuotaThisMonth: Int64; stdcall;
  end;

function GetInfoInterface(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): InfoInterface;


implementation
  uses SysUtils;

function GetInfoInterface(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): InfoInterface;
const
  defWSDL = 'https://adwords.google.com/api/adwords/v10/InfoService?wsdl';
  defURL  = 'https://adwords.google.com/api/adwords/v10/InfoService';
  defSvc  = 'InfoService';
  defPrt  = 'InfoService';
var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin
    if UseWSDL then
      Addr := defWSDL
    else
      Addr := defURL;
  end;
  if HTTPRIO = nil then
    RIO := THTTPRIO.Create(nil)
  else
    RIO := HTTPRIO;
  try
    Result := (RIO as InfoInterface);
    if UseWSDL then
    begin
      RIO.WSDLLocation := Addr;
      RIO.Service := defSvc;
      RIO.Port := defPrt;
    end else
      RIO.URL := Addr;
  finally
    if (Result = nil) and (HTTPRIO = nil) then
      RIO.Free;
  end;
end;


procedure ApiError.Setfield(Index: Integer; const AWideString: WideString);
begin
  Ffield := AWideString;
  Ffield_Specified := True;
end;

function ApiError.field_Specified(Index: Integer): boolean;
begin
  Result := Ffield_Specified;
end;

procedure ApiError.SettextIndex(Index: Integer; const AInteger: Integer);
begin
  FtextIndex := AInteger;
  FtextIndex_Specified := True;
end;

function ApiError.textIndex_Specified(Index: Integer): boolean;
begin
  Result := FtextIndex_Specified;
end;

procedure ApiError.SettextLength(Index: Integer; const AInteger: Integer);
begin
  FtextLength := AInteger;
  FtextLength_Specified := True;
end;

function ApiError.textLength_Specified(Index: Integer): boolean;
begin
  Result := FtextLength_Specified;
end;

procedure ApiError.Settrigger(Index: Integer; const AWideString: WideString);
begin
  Ftrigger := AWideString;
  Ftrigger_Specified := True;
end;

function ApiError.trigger_Specified(Index: Integer): boolean;
begin
  Result := Ftrigger_Specified;
end;

destructor ApiException.Destroy;
var
  I: Integer;
begin
  for I := 0 to Length(Ferrors)-1 do
    FreeAndNil(Ferrors[I]);
  SetLength(Ferrors, 0);
  inherited Destroy;
end;

initialization
  InvRegistry.RegisterInterface(TypeInfo(InfoInterface), 'https://adwords.google.com/api/adwords/v10', 'UTF-8');
  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(InfoInterface), '');
  InvRegistry.RegisterInvokeOptions(TypeInfo(InfoInterface), ioDocument);
  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface), useragent, 'useragent', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface), password, 'password', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface), email, 'email', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface), clientEmail, 'clientEmail', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface), clientCustomerId, 'clientCustomerId', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface), developerToken, 'developerToken', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface), applicationToken, 'applicationToken', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface), responseTime, 'responseTime', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface), operations, 'operations', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface), units, 'units', 'https://adwords.google.com/api/adwords/v10');
  InvRegistry.RegisterHeaderClass(TypeInfo(InfoInterface), requestId, 'requestId', 'https://adwords.google.com/api/adwords/v10');
  RemClassRegistry.RegisterXSClass(ApiError, 'https://adwords.google.com/api/adwords/v10', 'ApiError');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(ApiError), 'index_', 'index');
  RemClassRegistry.RegisterXSClass(ClientUsageRecord, 'https://adwords.google.com/api/adwords/v10', 'ClientUsageRecord');
  RemClassRegistry.RegisterXSClass(useragent, 'https://adwords.google.com/api/adwords/v10', 'useragent');
  RemClassRegistry.RegisterSerializeOptions(useragent, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(password, 'https://adwords.google.com/api/adwords/v10', 'password');
  RemClassRegistry.RegisterSerializeOptions(password, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(email, 'https://adwords.google.com/api/adwords/v10', 'email');
  RemClassRegistry.RegisterSerializeOptions(email, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(clientEmail, 'https://adwords.google.com/api/adwords/v10', 'clientEmail');
  RemClassRegistry.RegisterSerializeOptions(clientEmail, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(clientCustomerId, 'https://adwords.google.com/api/adwords/v10', 'clientCustomerId');
  RemClassRegistry.RegisterSerializeOptions(clientCustomerId, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(developerToken, 'https://adwords.google.com/api/adwords/v10', 'developerToken');
  RemClassRegistry.RegisterSerializeOptions(developerToken, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(applicationToken, 'https://adwords.google.com/api/adwords/v10', 'applicationToken');
  RemClassRegistry.RegisterSerializeOptions(applicationToken, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(responseTime, 'https://adwords.google.com/api/adwords/v10', 'responseTime');
  RemClassRegistry.RegisterSerializeOptions(responseTime, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(operations, 'https://adwords.google.com/api/adwords/v10', 'operations');
  RemClassRegistry.RegisterSerializeOptions(operations, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(units, 'https://adwords.google.com/api/adwords/v10', 'units');
  RemClassRegistry.RegisterSerializeOptions(units, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSClass(requestId, 'https://adwords.google.com/api/adwords/v10', 'requestId');
  RemClassRegistry.RegisterSerializeOptions(requestId, [xoSimpleTypeWrapper]);
  RemClassRegistry.RegisterXSInfo(TypeInfo(Array_Of_ApiError), 'https://adwords.google.com/api/adwords/v10', 'Array_Of_ApiError');
  RemClassRegistry.RegisterXSClass(ApiException, 'https://adwords.google.com/api/adwords/v10', 'ApiException');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(ApiException), 'message_', 'message');
  RemClassRegistry.RegisterXSClass(fault, 'https://adwords.google.com/api/adwords/v10', 'fault');
  RemClassRegistry.RegisterXSInfo(TypeInfo(Array_Of_string), 'http://www.w3.org/2001/XMLSchema', 'Array_Of_string');
  RemClassRegistry.RegisterSerializeOptions(TypeInfo(Array_Of_string), [xoInlineArrays]);
  RemClassRegistry.RegisterXSInfo(TypeInfo(Array_Of_ClientUsageRecord), 'https://adwords.google.com/api/adwords/v10', 'Array_Of_ClientUsageRecord');
  RemClassRegistry.RegisterSerializeOptions(TypeInfo(Array_Of_ClientUsageRecord), [xoInlineArrays]);

end.


More information about the Delphi mailing list