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

Nick nick at salehoo.com
Fri Apr 27 08:53:33 NZST 2007


Hey there,

Thanks for that! :-)
I compared the different between the D2007 and D2006 and I can see the 
D2007 is better, some calls  much simpler. ie
D2007 ->     function  getUsageQuotaThisMonth: Int64; stdcall;
D2006 ->     function  getUsageQuotaThisMonth(const parameters: 
getUsageQuotaThisMonth): getUsageQuotaThisMonthResponse; stdcall;
I got the D2006 one working, but would of been simplir if I had 2007 lol.

I got my other pas files working except when the parameter is an array, 
I also just tried with the D2007 and also get an error when the 
parameter is an array.
Here is an example.

var
param : Array_Of_KeywordRequest;  { decleared as  
Array_Of_KeywordRequest = array of KeywordRequest; }
begin
  Setlength(param, 1);
  param[0] := KeywordRequest.Create;
  param[0].id := 0;
  param[0].maxCpc := 5;
  param[0].negative := false;
  param[0].text := 'ipod';
  param[0].type_ := Broad;
res :=  ( Intf as TrafficEstimatorInterface ).estimateKeywordList(param);

it complies fine but when it runs it gets a soap error. Any call that 
doesn't use an array as a param runs fine.

O.o

Jeremy North wrote:
> 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
>>
> ------------------------------------------------------------------------
>
> // ************************************************************************ //
> // 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.
> ------------------------------------------------------------------------
>
> // ************************************************************************ //
> // 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.
> ------------------------------------------------------------------------
>
> _______________________________________________
> 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


More information about the Delphi mailing list