diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..67084f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +*.dof +*.dcu +*.ddp +*.identcache +*.otares +*.~*~ \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..cb16791 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "Lib/delphi-php-serializer"] + path = Lib/delphi-php-serializer + url = https://github.com/kingkellogg/delphi-php-serializer.git diff --git a/Datamodules/FilterDefDataUn.dfm b/Datamodules/FilterDefDataUn.dfm index ee78c60..5341e87 100644 --- a/Datamodules/FilterDefDataUn.dfm +++ b/Datamodules/FilterDefDataUn.dfm @@ -1,8 +1,6 @@ object FilterDefData: TFilterDefData OldCreateOrder = False OnCreate = DataModuleCreate - Left = 379 - Top = 262 Height = 376 Width = 569 object MasterDatasource: TDataSource @@ -19,7 +17,7 @@ object FilterDefData: TFilterDefData object MasterDataset: TosSQLDataSet CommandText = 'SELECT'#13#10' IDXFilterDef,'#13#10' Name,'#13#10' FilterType,'#13#10' Titulo'#13#10'FROM'#13 + - #10' XFilterDef'#13#10'WHERE'#13#10' IDXFilterDef = :ID'#13#10 + #10' XFilterDef'#13#10'WHERE'#13#10' IDXFilterDef = :ID' MaxBlobSize = 32 Params = < item @@ -37,7 +35,7 @@ object FilterDefData: TFilterDefData 'SELECT'#13#10' IDXFilterDefDetail,'#13#10' IDXFilterDef,'#13#10' Number,'#13#10' Des' + 'cription,'#13#10' QueryText,'#13#10' AttributeList,'#13#10' ExpressionList,'#13#10' ' + 'ConstraintList,'#13#10' OrderList,'#13#10' OrderColumn,'#13#10' OrderType'#13#10'FROM' + - #13#10' XFilterDefDetail'#13#10'WHERE'#13#10' IDXFilterDef = :IDXFilterDef'#13#10 + #13#10' XFilterDefDetail'#13#10'WHERE'#13#10' IDXFilterDef = :IDXFilterDef' DataSource = MasterDatasource MaxBlobSize = 32 Params = < diff --git a/Datamodules/FilterDefDataUn.pas b/Datamodules/FilterDefDataUn.pas index 5625016..f18d584 100644 --- a/Datamodules/FilterDefDataUn.pas +++ b/Datamodules/FilterDefDataUn.pas @@ -4,7 +4,7 @@ interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, - Provider, Db, DBTables, FMTBcd, SqlExpr, + Provider, Db, FMTBcd, SqlExpr, osSQLDataSetProvider, osCustomDataSetProvider, osUtils, osSQLDataSet; type diff --git a/Datamodules/RecursoDataUn.dfm b/Datamodules/RecursoDataUn.dfm index f115b26..960d0f0 100644 --- a/Datamodules/RecursoDataUn.dfm +++ b/Datamodules/RecursoDataUn.dfm @@ -1,8 +1,6 @@ object RecursoData: TRecursoData OldCreateOrder = False OnCreate = DataModuleCreate - Left = 674 - Top = 148 Height = 491 Width = 305 object MasterDataSet: TosSQLDataSet @@ -11,7 +9,7 @@ object RecursoData: TRecursoData ' Descricao,'#13#10' FilterDefName,'#13#10' DataClassName,'#13#10' ResClassName,' + #13#10' ReportClassName,'#13#10' IndiceImagem,'#13#10' NumOrdem,'#13#10' habilitaEd' + 'itarTodos,'#13#10' forcaReExecucaoFiltro'#13#10'FROM '#13#10' Recurso'#13#10'WHERE'#13#10' ' + - 'IDRecurso=:ID'#13#10 + 'IDRecurso=:ID' MaxBlobSize = 32 Params = < item @@ -109,7 +107,7 @@ object RecursoData: TRecursoData '.IdGrupo'#13#10' INNER JOIN Recurso R'#13#10' ON D.IdRecurso = R.IdRecur' + 'so'#13#10' INNER JOIN Dominio Dom'#13#10' ON R.IdDominio = Dom.IdDominio' + #13#10'WHERE'#13#10' UPPER(U.Apelido) LIKE UPPER(:UserName)'#13#10'ORDER BY'#13#10' ' + - 'Dom.Descricao,'#13#10' R.Nome'#13#10 + 'Dom.Descricao,'#13#10' R.Nome' MaxBlobSize = 32 Params = < item @@ -131,7 +129,7 @@ object RecursoData: TRecursoData CommandText = 'select'#13#10' DESCRICAO,'#13#10' IDACAO,'#13#10' IDRECURSO,'#13#10' INDICEIMAGEM,'#13#10 + ' NOME,'#13#10' NOMECOMPONENTE'#13#10'from'#13#10' ACAO'#13#10'where'#13#10' IDRECURSO = :I' + - 'DRECURSO'#13#10 + 'DRECURSO' DataSource = MasterDataSource MaxBlobSize = 32 Params = < @@ -175,7 +173,7 @@ object RecursoData: TRecursoData 'IdGrupo = D.IdGrupo'#13#10' JOIN Recurso R'#13#10' ON D.IdRecurso = R.Id' + 'Recurso'#13#10' JOIN Acao A'#13#10' ON D.IdAcao = A.IdAcao'#13#10'WHERE'#13#10' UPP' + 'ER(U.Apelido) LIKE UPPER(:UserName)'#13#10' AND UPPER(R.Nome) = UPPER' + - '(:NomeRecurso)'#13#10 + '(:NomeRecurso)' MaxBlobSize = 32 Params = < item @@ -204,8 +202,8 @@ object RecursoData: TRecursoData end object UsuarioDataSet: TosSQLDataSet CommandText = - 'SELECT'#13#10' Apelido,'#13#10' Nome,'#13#10' Senha,'#13#10' Status'#13#10'FROM'#13#10' Usuario' + - #13#10'WHERE'#13#10' UPPER(Apelido) = UPPER(:Username)'#13#10 + 'SELECT'#13#10' Apelido,'#13#10' Nome,'#13#10' Senha,'#13#10' Status,'#13#10' DataSenha'#13#10'F' + + 'ROM'#13#10' Usuario'#13#10'WHERE'#13#10' UPPER(Apelido) = UPPER(:Username)' MaxBlobSize = 32 Params = < item @@ -234,6 +232,9 @@ object RecursoData: TRecursoData FixedChar = True Size = 1 end + object UsuarioDataSetDATASENHA: TDateField + FieldName = 'DATASENHA' + end end object UsuarioProvider: TosSQLDataSetProvider DataSet = UsuarioDataSet diff --git a/Datamodules/RecursoDataUn.pas b/Datamodules/RecursoDataUn.pas index b1e3b29..34176fc 100644 --- a/Datamodules/RecursoDataUn.pas +++ b/Datamodules/RecursoDataUn.pas @@ -42,6 +42,7 @@ TRecursoData = class(TDataModule) MasterDataSetHABILITAEDITARTODOS: TStringField; MasterDataSetFORCAREEXECUCAOFILTRO: TStringField; UsuarioDataSetSTATUS: TStringField; + UsuarioDataSetDATASENHA: TDateField; procedure DataModuleCreate(Sender: TObject); private diff --git a/Datamodules/acCustomSQLMainDataUn.dfm b/Datamodules/acCustomSQLMainDataUn.dfm index 977038a..bdcf1c9 100644 --- a/Datamodules/acCustomSQLMainDataUn.dfm +++ b/Datamodules/acCustomSQLMainDataUn.dfm @@ -3,27 +3,6 @@ object acCustomSQLMainData: TacCustomSQLMainData OnCreate = DataModuleCreate Height = 365 Width = 631 - object spGetNewSequence: TStoredProc - StoredProcName = 'dbo.cc_GetNewSequence' - Left = 100 - Top = 200 - ParamData = < - item - DataType = ftInteger - Name = 'Result' - ParamType = ptResult - end - item - DataType = ftString - Name = '@Name' - ParamType = ptInput - end - item - DataType = ftInteger - Name = '@Value' - ParamType = ptOutput - end> - end object prvFilter: TosSQLDataSetProvider DataSet = FilterQuery Options = [poReadOnly, poNoReset, poAllowCommandText] @@ -31,25 +10,24 @@ object acCustomSQLMainData: TacCustomSQLMainData Top = 96 end object SQLConnection: TosSQLConnection - ConnectionName = 'IBLocal' + ConnectionName = 'IBConnection' DriverName = 'Interbase' LoginPrompt = False Params.Strings = ( - 'BlobSize=32' - 'CommitRetain=' - - 'Database=localhost:C:\projetos\clientes\labmaster\DB\cli\LabMast' + - 'er.GDB' 'DriverName=Interbase' - 'ErrorResourceFile=' - 'LocaleCode=' + 'Database=database.gdb' + 'RoleName=RoleName' + 'User_Name=sysdba' 'Password=masterkey' - 'RoleName=' 'ServerCharSet=' 'SQLDialect=3' - 'Interbase TransIsolation=' - 'User_Name=SYSDBA' - 'WaitOnLocks=') + 'ErrorResourceFile=' + 'LocaleCode=0000' + 'BlobSize=-1' + 'CommitRetain=False' + 'WaitOnLocks=True' + 'IsolationLevel=ReadCommitted' + 'Trim Char=False') Left = 100 Top = 80 end @@ -89,4 +67,49 @@ object acCustomSQLMainData: TacCustomSQLMainData Left = 100 Top = 152 end + object SQLConnectionArquivos: TSQLConnection + ConnectionName = 'IBArquivos' + DriverName = 'Firebird' + LoginPrompt = False + Params.Strings = ( + 'DriverUnit=Data.DBXFirebird' + + 'DriverPackageLoader=TDBXDynalinkDriverLoader,DbxCommonDriver180.' + + 'bpl' + + 'DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borla' + + 'nd.Data.DbxCommonDriver,Version=18.0.0.0,Culture=neutral,PublicK' + + 'eyToken=91d62ebb5b0d1b1b' + + 'MetaDataPackageLoader=TDBXFirebirdMetaDataCommandFactory,DbxFire' + + 'birdDriver180.bpl' + + 'MetaDataAssemblyLoader=Borland.Data.TDBXFirebirdMetaDataCommandF' + + 'actory,Borland.Data.DbxFirebirdDriver,Version=18.0.0.0,Culture=n' + + 'eutral,PublicKeyToken=91d62ebb5b0d1b1b' + 'GetDriverFunc=getSQLDriverINTERBASE' + 'LibraryName=dbxfb.dll' + 'LibraryNameOsx=libsqlfb.dylib' + 'VendorLib=fbclient.dll' + 'VendorLibWin64=fbclient.dll' + 'VendorLibOsx=/Library/Frameworks/Firebird.framework/Firebird' + 'Database=c:\db\arquivos.fdb' + 'User_Name=sysdba' + 'Password=masterkey' + 'Role=RoleName' + 'MaxBlobSize=-1' + 'LocaleCode=0000' + 'IsolationLevel=ReadCommitted' + 'SQLDialect=3' + 'CommitRetain=False' + 'WaitOnLocks=True' + 'TrimChar=False' + 'BlobSize=-1' + 'ErrorResourceFile=' + 'RoleName=RoleName' + 'ServerCharSet=' + 'Trim Char=False') + Left = 100 + Top = 225 + end end diff --git a/Datamodules/acCustomSQLMainDataUn.pas b/Datamodules/acCustomSQLMainDataUn.pas index 176a209..aac26ae 100644 --- a/Datamodules/acCustomSQLMainDataUn.pas +++ b/Datamodules/acCustomSQLMainDataUn.pas @@ -5,8 +5,8 @@ interface uses SysUtils, Classes, Data.DBXFirebird, FMTBcd, SqlExpr, osSQLDataSet, DB, osSQLConnection, Provider, osCustomDataSetProvider, osSQLDataSetProvider, - DBTables, osClientDataSet, Contnrs, osSQLQuery, Forms, Types, Variants, - Data.DBXInterBase; + osClientDataSet, Contnrs, osSQLQuery, Forms, Types, Variants, + Data.DBXInterBase, Data.DBXCommon, System.Generics.Collections; const @@ -38,15 +38,19 @@ TRefreshTable = class(TObject) procedure RefreshData(NewVersion: integer); end; + TRefreshTableList = class(TList) + end; + TacCustomSQLMainData = class(TDataModule) - spGetNewSequence: TStoredProc; prvFilter: TosSQLDataSetProvider; SQLConnection: TosSQLConnection; FilterQuery: TosSQLDataSet; SQLMonitor: TSQLMonitor; SQLConnectionMeta: TosSQLConnection; + SQLConnectionArquivos: TSQLConnection; procedure DataModuleCreate(Sender: TObject); private + protected BD: string; FQueryList: TObjectList; @@ -56,8 +60,10 @@ TacCustomSQLMainData = class(TDataModule) FIDUsuario: Integer; FNomeUsuario: String; FApelidoUsuario: String; - FRefreshTableList: TObjectList; + FRefreshTableList: TRefreshTableList; FProfile: string; + FSenhaFirebird: string; + FUsuarioFirebird: string; function selectParamsFileName: string; public @@ -67,23 +73,23 @@ TacCustomSQLMainData = class(TDataModule) property ApelidoUsuario: String read FApelidoUsuario; property Profile: string read FProfile; - constructor Create(AOwner: TComponent); overload; override; - constructor Create(AOwner: TComponent; BD: String); overload; + constructor CreateOwn(AOwner: TComponent; BD: String); overload; destructor Destroy; override; function GetNetUserName: string; function GetQuery(meta: boolean = false): TosSQLQuery; + function GetQueryArquivo: TosSQLQuery; procedure FreeQuery(Query: TosSQLQuery); - function GetNextSequence(Nome: string): integer; - function GetServerDate: TDatetime; - function GetServerDatetime: TDatetime; + function GetServerDate(aConnection: TSQLConnection=nil): TDatetime; + function GetServerDatetime(aConnection: TSQLConnection=nil): TDatetime; function InTransaction: boolean; - procedure StartTransaction; - procedure Commit; - procedure Rollback; - function GetNewID(nomeGenerator: String = ''): integer; + function StartTransaction: TDBXTransaction; + procedure Commit(var Transaction: TDBXTransaction); + procedure Rollback(var Transaction: TDBXTransaction); + procedure CloseTransaction; + function GetNewID(nomeGenerator: String= ''; aConnection: TSQLConnection = nil): integer; function GetGeneratorValue(nomeGenerator: String): integer; procedure GetUserInfo(apelido: string); @@ -106,7 +112,7 @@ TacCustomSQLMainData = class(TDataModule) implementation -uses EscolhaConexaoFormUn; +uses EscolhaConexaoFormUn, acStrUtils; {$R *.dfm} @@ -130,38 +136,31 @@ procedure TacCustomSQLMainData.CheckVersion(PTableFilter: string); begin Query := GetQuery; try - with Query, Query.SQL do + Query.SQL.Text := + 'SELECT ' + + 'NomeTabela, ' + + 'Versao ' + + 'FROM ' + + 'VersaoTabela ' + PTableFilter; + Query.Open; + if not Query.Eof then begin - Text := - 'SELECT ' + - 'NomeTabela, ' + - 'Versao ' + - 'FROM ' + - 'VersaoTabela ' + PTableFilter; - Open; - if not Eof then + NomeTabelaField := TStringField(Query.Fields[0]); + VersaoField := TIntegerField(Query.Fields[1]); + while not Query.Eof do begin - NomeTabelaField := TStringField(Fields[0]); - VersaoField := TIntegerField(Fields[1]); - while not Eof do - begin - - Application.ProcessMessages; + Application.ProcessMessages; - RefreshTable := FindRefreshTable(Trim(NomeTabelaField.Value)); - if Assigned(RefreshTable) then - begin - with RefreshTable do - begin - if FVersion < VersaoField.Value then - RefreshData(VersaoField.Value); - end; - end; + RefreshTable := FindRefreshTable(Trim(String(NomeTabelaField.Value))); + if (RefreshTable <> nil) then + begin + if RefreshTable.FVersion < VersaoField.Value then + RefreshTable.RefreshData(VersaoField.Value); + end; - Next; - end; // while - end; // if - end; + Query.Next; + end; // while + end; // if finally FreeQuery(Query); end; @@ -179,8 +178,8 @@ constructor TacCustomSQLMainData.Create(AOwner: TComponent); begin FQueryList := TObjectList.Create(True); // OwnsObjects = True FIDHighValue := -1; - FRefreshTableList := TObjectList.Create(True); // OwnsObjects = True - inherited; + FRefreshTableList := TRefreshTableList.Create; // OwnsObjects = True + inherited Create(AOwner); end; {------------------------------------------------------------------------- @@ -191,13 +190,10 @@ constructor TacCustomSQLMainData.Create(AOwner: TComponent);  Observações>  Atualização>  ------------------------------------------------------------------------} -constructor TacCustomSQLMainData.Create(AOwner: TComponent; bd: string); +constructor TacCustomSQLMainData.CreateOwn(AOwner: TComponent; bd: string); begin - inherited Create(AOwner); self.BD := bd; - FQueryList := TObjectList.Create(True); // OwnsObjects = True - FIDHighValue := -1; - FRefreshTableList := TObjectList.Create(True); // OwnsObjects = True + Self.Create(AOwner); end; {------------------------------------------------------------------------- @@ -210,7 +206,11 @@ constructor TacCustomSQLMainData.Create(AOwner: TComponent; bd: string);  Atualização>  ------------------------------------------------------------------------} destructor TacCustomSQLMainData.Destroy; +var + _RefreshTable: TRefreshTable; begin + for _RefreshTable in Self.FRefreshTableList do + _RefreshTable.Free; FQueryList.Free; FRefreshTableList.Free; inherited; @@ -219,17 +219,15 @@ destructor TacCustomSQLMainData.Destroy; function TacCustomSQLMainData.FindRefreshTable( PTableName: string): TRefreshTable; var - i: integer; - n : integer; -begin - n := FRefreshTableList.Count - 1; - i := 0; - while (i <= n) and (TRefreshTable(FRefreshTableList.Items[i]).TableName <> PTableName) do - inc(i); - if i <= n then - Result := TRefreshTable(FRefreshTableList.Items[i]) - else - Result := nil; + _RefreshTable: TRefreshTable; +begin + Result := nil; + for _RefreshTable in Self.FRefreshTableList do + if _RefreshTable.TableName.Trim = PTableName.Trim then + begin + Result := _RefreshTable; + break; + end; end; {------------------------------------------------------------------------- @@ -267,36 +265,30 @@ procedure TacCustomSQLMainData.LoadRefreshTables; begin Query := GetQuery; try - with Query, Query.SQL do - begin - Text := + Query.SQL.Text := 'SELECT ' + 'NomeTabela, ' + 'Versao ' + 'FROM ' + 'VersaoTabela '; - Open; - if not Eof then + Query.Open; + if not Query.Eof then begin - NomeTabelaField := TStringField(Fields[0]); - VersaoField := TIntegerField(Fields[1]); + NomeTabelaField := TStringField(Query.Fields[0]); + VersaoField := TIntegerField(Query.Fields[1]); FRefreshTableList.Clear; - while not Eof do + while not Query.Eof do begin RefreshTable := TRefreshTable.Create; - with RefreshTable do - begin - FTableName := Trim(NomeTabelaField.Value); - FVersion := VersaoField.Value; - FDataSet := nil; - end; + RefreshTable.FTableName := Trim(String(NomeTabelaField.Value)); + RefreshTable.FVersion := VersaoField.Value; + RefreshTable.FDataSet := nil; FRefreshTableList.Add(RefreshTable); - Next; + Query.Next; end; // while end; // if - end; finally FreeQuery(Query); end; @@ -345,8 +337,10 @@ procedure TacCustomSQLMainData.DataModuleCreate(Sender: TObject); with TStringList.Create do begin try - if bd='' then + if self.BD = '' then LoadFromFile(selectParamsFileName) + else if self.BD <> '' then //Atualmente usado pela ClimepeAgendador.dll, na unit BaseDLLUn é chamado o CreateOwn + LoadFromFile(bd) else begin add('BlobSize=-1'); @@ -366,12 +360,47 @@ procedure TacCustomSQLMainData.DataModuleCreate(Sender: TObject); for i := 0 to Count - 1 do begin sName := Names[i]; - SQLConnection.Params.Values[sName] := Values[sName]; - SQLConnectionMeta.Params.Values[sName] := Values[sName]; + if UpperCase(sName) = 'PASSWORD' then + begin + if Copy(Values[sName], Values[sName].Length - 1, 2) = '==' then // == indica que a senha esta criptografada + begin + SQLConnection.Params.Values[sName] := simpleDecrypt(Copy(Values[sName], 1, Values[sName].Length - 1)); + SQLConnectionMeta.Params.Values[sName] := simpleDecrypt(Copy(Values[sName], 1, Values[sName].Length - 1)); + end + else + begin + SQLConnection.Params.Values[sName] := Values[sName]; + SQLConnectionMeta.Params.Values[sName] := Values[sName]; + + //Altera o arquivo para salvar a senha criptografada + if (UpperCase(extractfilename(application.exename)) = 'LABMASTER.EXE') or (UpperCase(extractfilename(application.exename)) = 'LABPLUS.EXE') then + begin + Values[sName] := simpleCrypt(Values[sName]) + '=='; + SaveToFile(selectParamsFileName); + end; + end; + FSenhaFirebird := SQLConnection.Params.Values[sName]; + end + else + begin + SQLConnection.Params.Values[sName] := Values[sName]; + SQLConnectionMeta.Params.Values[sName] := Values[sName]; + if UpperCase(sName) = 'USER_NAME' then + FUsuarioFirebird := Values[sName] + end; end; if SQLConnectionMeta.Params.Values['DataBaseMeta']<>'' then - SQLConnectionMeta.Params.Values['Database'] := - SQLConnectionMeta.Params.Values['DatabaseMeta']; + SQLConnectionMeta.Params.Values['Database'] := SQLConnectionMeta.Params.Values['DatabaseMeta']; + + //Conexão com o banco de arquivos + try + SQLConnectionArquivos.Params := SQLConnection.Params; + SQLConnectionArquivos.Params.Values['database'] := ExtractFilePath(SQLConnection.Params.Values['database']) + 'Arquivos.fdb'; + SQLConnectionArquivos.Params.Values['PASSWORD'] := SQLConnection.Params.Values['PASSWORD']; + SQLConnectionArquivos.Connected := True; + except + // + end; finally Free; end; @@ -400,18 +429,24 @@ function TacCustomSQLMainData.GetQuery(meta: boolean): TosSQLQuery; Result.SQLConnection := SQLConnection; end; +function TacCustomSQLMainData.GetQueryArquivo: TosSQLQuery; +begin + Result := TosSQLQuery.Create(Self); + Result.SQLConnection := SQLConnectionArquivos; +end; + procedure TacCustomSQLMainData.FreeQuery(Query: TosSQLQuery); begin Query.Close; - Query.Destroy; + FreeAndNil(Query); end; -procedure TacCustomSQLMainData.Commit; +procedure TacCustomSQLMainData.Commit(var Transaction: TDBXTransaction); begin - SQLConnection.Commit(FTransactionDesc); + SQLConnection.CommitFreeAndNil(Transaction); end; -function TacCustomSQLMainData.GetNewID(nomeGenerator: String): integer; +function TacCustomSQLMainData.GetNewID(nomeGenerator: String= ''; aConnection: TSQLConnection = nil): integer; var v: variant; qryAux: TosSQLDataSet; @@ -421,11 +456,18 @@ function TacCustomSQLMainData.GetNewID(nomeGenerator: String): integer; // Se estourou a faixa, lê um novo HighValue if (FIDLowValue = 10) or (FIDHighValue = -1) then begin - v := prvFilter.GetIDHigh; - if v = NULL then - raise Exception.Create('Não conseguiu obter o ID do server para inclusão'); - FIDHighValue := v; - FIDLowValue := 0; + try + if (aConnection <> nil) then + FilterQuery.SQLConnection := aConnection; + + v := prvFilter.GetIDHigh; + if v = NULL then + raise Exception.Create('Não conseguiu obter o ID do server para inclusão'); + FIDHighValue := v; + FIDLowValue := 0; + finally + FilterQuery.SQLConnection := Self.SQLConnection; + end; end; Result := FIDHighValue * 10 + FIDLowValue; Inc(FIDLowValue); @@ -433,6 +475,8 @@ function TacCustomSQLMainData.GetNewID(nomeGenerator: String): integer; begin qryAux := GeTosSQLDataset; try + if (aConnection <> nil) then + qryAux.SQLConnection := aConnection; qryAux.CommandText := 'select gen_id('+nomeGenerator+', 1) from RDB$DATABASE'; qryAux.Open; result := qryAux.Fields[0].AsInteger; @@ -442,36 +486,30 @@ function TacCustomSQLMainData.GetNewID(nomeGenerator: String): integer; end; end; -function TacCustomSQLMainData.GetNextSequence(Nome: string): integer; -begin - with spGetNewSequence do - begin - ParamByName('@Name').Value := Nome; - ExecProc; - Result := ParamByName('@Value').Value; - end; -end; - -function TacCustomSQLMainData.GetServerDate: TDatetime; +function TacCustomSQLMainData.GetServerDate(aConnection: TSQLConnection=nil): TDatetime; begin - Result := StrToDatetime(FormatDatetime('dd/mm/yyyy', GetServerDatetime)); + Result := StrToDatetime(FormatDatetime('dd/mm/yyyy', GetServerDatetime(aConnection))); end; -function TacCustomSQLMainData.GetServerDatetime: TDatetime; +function TacCustomSQLMainData.GetServerDatetime(aConnection: TSQLConnection=nil): TDatetime; var Query: TosSQLQuery; begin - Query := GetQuery; try - with Query, Query.SQL do - begin - Add('select CURRENT_TIMESTAMP as DataHoraServidor from RDB$DATABASE'); - Open; - Result := Fields[0].AsDatetime; - Close; + Query := GetQuery; + if (aConnection <> nil) then + Query.SQLConnection := aConnection; + + try + Query.SQL.Add('select CURRENT_TIMESTAMP as DataHoraServidor from RDB$DATABASE'); + Query.Open; + Result := Query.Fields[0].AsDatetime; + Query.Close; + finally + FreeQuery(Query); end; - finally - FreeQuery(Query); + except + Result := now(); end; end; @@ -481,9 +519,7 @@ procedure TacCustomSQLMainData.GetUserInfo(apelido: string); begin Query := GetQuery; try - with Query, Query.SQL do - begin - Text := + Query.SQL.Text := 'SELECT ' + 'Nome, ' + 'IdUsuario, ' + @@ -492,13 +528,12 @@ procedure TacCustomSQLMainData.GetUserInfo(apelido: string); 'Usuario ' + 'WHERE ' + 'upper(Apelido) = upper(:Apelido)'; - ParamByName('Apelido').AsString := apelido; - Open; - FNomeUsuario := Fields[0].AsString; - FIDUsuario := Fields[1].AsInteger; - FApelidoUsuario := Fields[2].AsString; - Close; - end; + Query.ParamByName('Apelido').AsString := apelido; + Query.Open; + FNomeUsuario := Query.FieldbyName('Nome').AsString; + FIDUsuario := Query.FieldByName('IdUsuario').AsInteger; + FApelidoUsuario := Query.FieldByName('Apelido').AsString; + Query.Close; finally FreeQuery(Query); end; @@ -509,19 +544,21 @@ function TacCustomSQLMainData.InTransaction: boolean; Result := SQLConnection.InTransaction; end; -procedure TacCustomSQLMainData.Rollback; +procedure TacCustomSQLMainData.RollBack(var Transaction: TDBXTransaction); begin - SQLConnection.Rollback(FTransactionDesc); + SQLConnection.RollbackIncompleteFreeAndNil(Transaction); end; -procedure TacCustomSQLMainData.StartTransaction; +function TacCustomSQLMainData.StartTransaction: TDBXTransaction; begin + Result := nil; if not SQLConnection.InTransaction then - begin - FTransactionDesc.TransactionID := 1; - FTransactionDesc.IsolationLevel := xilREADCOMMITTED; - SQLConnection.StartTransaction(FTransactionDesc); - end; + Result := SQLConnection.BeginTransaction(TDBXIsolations.ReadCommitted); +end; + +procedure TacCustomSQLMainData.CloseTransaction; +begin + SQLConnection.Close; end; {------------------------------------------------------------------------- @@ -540,10 +577,22 @@ procedure TacCustomSQLMainData.RegisterRefreshTable(PTableName: string; RefreshTable: TRefreshTable; begin RefreshTable := FindRefreshTable(PTableName); - if Assigned(RefreshTable) then + if (RefreshTable = nil) then + begin + RefreshTable := TRefreshTable.Create; + RefreshTable.FTableName := PTableName; + RefreshTable.FVersion := 0; + RefreshTable.FDataSet := PDataSet; + Self.FRefreshTableList.Add(RefreshTable) + end + else RefreshTable.FDataset := PDataSet; - PDataSet.Open; + Try + PDataSet.Open; + Except + + End; end; @@ -559,23 +608,25 @@ procedure TacCustomSQLMainData.RegisterRefreshTable(PTableName: string; procedure TacCustomSQLMainData.UpdateVersion(PTableName: string); var Query: TosSQLQuery; + _Versao: integer; begin Query := GetQuery; try - with Query, Query.SQL do - begin - Text := - 'UPDATE ' + - 'VersaoTabela ' + - 'SET Versao = Versao + 1' + - 'WHERE ' + - 'NomeTabela = ' + QuotedStr(PTableName); - ExecSql; - end; + Query.SQL.Text := Format('SELECT Versao FROM VersaoTabela WHERE nomeTabela = %s', [QuotedStr(PTableName)]); + Query.Open; + _Versao := 1; + if (not Query.IsEmpty) then + _Versao := Query.FieldByName('Versao').AsInteger + 1; + + Query.SQL.Text := Format( + 'UPDATE OR INSERT INTO ' + + ' VersaoTabela (nometabela, Versao) ' + + ' VALUES (%s, %d) ' + + ' MATCHING (nomeTabela) ', [QuotedStr(PTableName), _Versao]); + Query.ExecSql; finally FreeQuery(Query); end; - CheckVersion('WHERE NomeTabela = ' + QuotedStr(PTableName)); end; @@ -629,12 +680,11 @@ function TacCustomSQLMainData.GeTosSQLDataset: TosSQLDataset; procedure TRefreshTable.RefreshData(NewVersion: integer); begin FVersion := NewVersion; - if Assigned(FDataSet) then - with FDataSet do - begin - Close; - Open; - end; + if (FDataSet <> nil) then + begin + FDataSet.Close; + FDataSet.Open; + end; end; function TacCustomSQLMainData.getSQLResult(sqlText: string; diff --git a/Forms/FilterDefEditFormUn.dfm b/Forms/FilterDefEditFormUn.dfm index c0dcdff..5eb981d 100644 --- a/Forms/FilterDefEditFormUn.dfm +++ b/Forms/FilterDefEditFormUn.dfm @@ -1,12 +1,15 @@ inherited FilterDefEditForm: TFilterDefEditForm Left = 492 Top = 121 - Width = 520 - Height = 568 ActiveControl = DBEdit2 BorderIcons = [biSystemMenu, biMinimize] BorderWidth = 4 Caption = 'Defini'#231#227'o de Filtros' + ClientHeight = 501 + ClientWidth = 496 + ExplicitTop = -195 + ExplicitWidth = 520 + ExplicitHeight = 568 PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel [0] @@ -48,8 +51,9 @@ inherited FilterDefEditForm: TFilterDefEditForm Caption = 'T'#237'tulo:' end inherited MainControlBar: TControlBar - Width = 504 + Width = 496 TabOrder = 4 + ExplicitWidth = 496 end object DBEdit2: TDBEdit [6] Left = 48 @@ -115,7 +119,7 @@ inherited FilterDefEditForm: TFilterDefEditForm Top = 272 Width = 490 Height = 195 - ActivePage = TabSheet5 + ActivePage = TabSheet1 Anchors = [akLeft, akRight, akBottom] TabOrder = 3 object TabSheet1: TTabSheet @@ -506,25 +510,54 @@ inherited FilterDefEditForm: TFilterDefEditForm PrinterSetup.DocumentName = 'Report' PrinterSetup.PaperName = 'A4 (210 x 297 mm)' PrinterSetup.PrinterName = 'Default' + PrinterSetup.SaveDeviceSettings = False PrinterSetup.mmMarginBottom = 6350 PrinterSetup.mmMarginLeft = 6350 PrinterSetup.mmMarginRight = 6350 PrinterSetup.mmMarginTop = 6350 PrinterSetup.mmPaperHeight = 297000 PrinterSetup.mmPaperWidth = 210000 - PrinterSetup.PaperSize = 9 + PrinterSetup.PaperSize = 256 + ArchiveFileName = '($MyDocuments)\ReportArchive.raf' DeviceType = 'Screen' + DefaultFileDeviceType = 'PDF' EmailSettings.ReportFormat = 'PDF' + LanguageID = 'Default' OnPreviewFormCreate = ReportPreviewFormCreate + OpenFile = False OutlineSettings.CreateNode = True OutlineSettings.CreatePageNodes = True OutlineSettings.Enabled = False OutlineSettings.Visible = False + ThumbnailSettings.Enabled = True + ThumbnailSettings.Visible = True + ThumbnailSettings.DeadSpace = 30 + PDFSettings.EmbedFontOptions = [efUseSubset] + PDFSettings.EncryptSettings.AllowCopy = True + PDFSettings.EncryptSettings.AllowInteract = True + PDFSettings.EncryptSettings.AllowModify = True + PDFSettings.EncryptSettings.AllowPrint = True + PDFSettings.EncryptSettings.Enabled = False + PDFSettings.EncryptSettings.KeyLength = kl40Bit + PDFSettings.FontEncoding = feAnsi + PDFSettings.ImageCompressionLevel = 25 + RTFSettings.DefaultFont.Charset = DEFAULT_CHARSET + RTFSettings.DefaultFont.Color = clWindowText + RTFSettings.DefaultFont.Height = -13 + RTFSettings.DefaultFont.Name = 'Arial' + RTFSettings.DefaultFont.Style = [] + TextFileName = '($MyDocuments)\Report.pdf' TextSearchSettings.DefaultString = '' TextSearchSettings.Enabled = False + XLSSettings.AppName = 'ReportBuilder' + XLSSettings.Author = 'ReportBuilder' + XLSSettings.Subject = 'Report' + XLSSettings.Title = 'Report' Left = 256 Top = 460 - Version = '10.07' + Version = '15.0' mmColumnWidth = 0 + object ppParameterList1: TppParameterList + end end end diff --git a/Forms/FilterDefEditFormUn.pas b/Forms/FilterDefEditFormUn.pas index 777ccb0..04683b8 100644 --- a/Forms/FilterDefEditFormUn.pas +++ b/Forms/FilterDefEditFormUn.pas @@ -9,7 +9,7 @@ interface wwdbedit, Wwdotdot, Wwdbcomb, Menus, ImgList, osActionList, ToolWin, Buttons, ExtCtrls, osComboSearch, osUtils, osSQLDataSet, ppReport, daDataModule, daQueryDataView, ppTypes, daSQL, ppClass, ppComm, ppRelatv, - ppProd; + ppProd, ppParameter, System.Actions; type TFilterDefEditForm = class(TosCustomEditForm) @@ -212,7 +212,7 @@ procedure TFilterDefEditForm.RBComboSearchReturnSearch(Sender: TObject; begin if not(cdsEditDetail.State in [dsEdit, dsInsert]) then cdsEditDetail.Edit; - cdsEditDetailQueryText.Value := getSQLFromTemplate(stream); + cdsEditDetailQueryText.Value := AnsiString(getSQLFromTemplate(stream)); end; finally diff --git a/Forms/ImprimirRelatorioFormUn.dfm b/Forms/ImprimirRelatorioFormUn.dfm index 7150da2..e0ec8e5 100644 --- a/Forms/ImprimirRelatorioFormUn.dfm +++ b/Forms/ImprimirRelatorioFormUn.dfm @@ -1,6 +1,7 @@ inherited ImprimirRelatorioForm: TImprimirRelatorioForm Caption = 'ImprimirRelatorioForm' - ExplicitHeight = 355 + ExplicitWidth = 320 + ExplicitHeight = 356 PixelsPerInch = 96 TextHeight = 13 object ComboFilter: TosComboFilter [1] @@ -26,147 +27,6 @@ inherited ImprimirRelatorioForm: TImprimirRelatorioForm inherited MasterDataSource: TDataSource DataSet = osClientDataset1 end - inherited ImageList: TImageList - Bitmap = { - 494C010101000400100010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 - 0000000000003600000028000000400000001000000001002000000000000010 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000C6C6BD00BDB5AD009C9C94008C84 - 84008C8484008C8484008C8484008C8484008C8484008C8484008C8484008C84 - 84008C84840094948C00B5ADA500000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000063312900633129006331 - 2900633129006331290063312900633129006331290063312900633129006331 - 2900633129007B73730094948C00000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000008C635A00AD847300DEB5A500DEB5 - A500D6ADA500D6AD9C00CEA59C00CE9C9400CE9C8C00C6948C00C6948400C694 - 84008C524200633129008C848400000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000008C635A00B58C7B00FFF7F700FFF7 - F700F7EFEF00F7EFE700EFDED600DEC6B500DEBDAD00D6B5A500D6B5A500DEB5 - A5008C524200633121008C848400000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000008C635A00B58C7B00FFF7F700DEDE - D600DED6CE00DECEC600DECEBD00D6BDAD00CEB5A500CEAD9C00C6A59400DEBD - AD008C524200633121008C848400000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000008C635A00BD948400FFF7F700FFF7 - F700F7F7EF00F7EFEF00F7EFE700EFE7DE00E7D6CE00DEBDAD00D6BDAD00DEBD - B5008C524200633121008C848400000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000008C635A00BD9C8400FFF7F700FFF7 - F700FFF7F700F7F7EF00F7EFEF00F7EFE700EFE7DE00DEC6BD00DEC6B500E7CE - BD008C5A4200633121008C848400000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000008C635A00C69C8C00FFFFF700FFFF - F700FFF7F700FFF7F700F7F7EF00F7EFE700F7EFE700EFD6CE00EFD6C600E7D6 - C600945A4200633121008C848400000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000008C635A00C6A59400C6A59400C69C - 8C00BD948400BD948400BD947B00B58C7B00B5847300AD7B6B009C634A00945A - 4A00945A4A00633121008C848400000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000008C635A00CEAD9C00C6A59400C6A5 - 9400BD9C8C00BD9C8400BD948400B58C7B00B58C7B00AD8473009C6352009C63 - 4A00945A4A00633121008C848400000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000008C635A00CEAD9C00CEAD9C00C6A5 - 9400C6A58C00BD9C8C00BD9C8400BD947B00B58C7B00B5847300AD7B6B009C63 - 5200945A4A00633121008C848400000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000008C6B5A00D6B5A500FFFFFF009C63 - 4A00D6BDAD00FFFFFF00FFFFFF00FFFFFF00FFFFF700FFEFEF00F7EFE700F7E7 - DE009C635200633121008C848400000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000946B5A00D6BDAD00FFFFFF009C63 - 4A00D6BDAD00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFF7F700FFF7EF00FFEF - EF00A56B5A00633121008C848400000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000946B5A00D6BDB500FFFFFF009C63 - 4A009C634A00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFF700FFF7 - F700B58473006331290094948C00000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000946B5A00946B5A008C6B - 5A008C635A008C635A008C635A008C6352008C6352008C6352008C6352008C5A - 5200845A5200BDBDB500CEC6BD00000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000424D3E000000000000003E000000 - 2800000040000000100000000100010000000000800000000000000000000000 - 000000000000000000000000FFFFFF00FFFF0000000000000001000000000000 - 8001000000000000000100000000000000010000000000000001000000000000 - 0001000000000000000100000000000000010000000000000001000000000000 - 0001000000000000000100000000000000010000000000000001000000000000 - 0001000000000000800100000000000000000000000000000000000000000000 - 000000000000} - end object osClientDataset1: TosClientDataset Aggregates = <> FetchOnDemand = False diff --git a/Forms/ImprimirRelatorioFormUn.pas b/Forms/ImprimirRelatorioFormUn.pas index 08da9f3..8f76f0c 100644 --- a/Forms/ImprimirRelatorioFormUn.pas +++ b/Forms/ImprimirRelatorioFormUn.pas @@ -4,7 +4,7 @@ interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, osCustomEditFrm, Menus, ImgList, DB, ActnList, osActionList, + Dialogs, osCustomEditFrm, Menus, ImgList, DB, ActnList, osActionList, SQLMainData, Buttons, ExtCtrls, osUtils, DBClient, osClientDataset, StdCtrls, Mask, wwdbedit, Wwdotdot, Wwdbcomb, osComboFilter, osSQLQuery, ppReport, ppComm, ppRelatv, ppProd, ppClass, osCustomSearchFrm, ppMemo, TypInfo, @@ -35,7 +35,7 @@ TImprimirRelatorioForm = class(TosCustomEditForm) implementation uses osReportUtils, acCustomSQLMainDataUn, osFrm, acCustomParametroSistemaDataUn, - acCustomReportUn; + acCustomReportUn, ReportUn, ParametroSistemaDataUn, StatusUnit; {$R *.dfm} @@ -52,10 +52,11 @@ procedure TImprimirRelatorioForm.ImprimirRelatorioComFiltro(idRelatorio: integer var stream: TMemoryStream; qry: TosSQLQuery; + updateContadorImpressao : TosSQLQuery; templateName, FilterName: string; srchForm: TCustomSearchForm; config: TConfigImpressao; - sql, extensao: string; + extensao: string; FTextFileName: string; where, order: string; begin @@ -73,6 +74,7 @@ procedure TImprimirRelatorioForm.ImprimirRelatorioComFiltro(idRelatorio: integer qry := acCustomSQLMainData.GetQuery; try qry.sql.Text := 'SELECT ' + + ' R.Titulo, '+ ' RB.Name as TemplateName, '+ ' F.Name as NomeFiltro, ' + ' R.ClasseImpressora, ' + @@ -82,6 +84,7 @@ procedure TImprimirRelatorioForm.ImprimirRelatorioComFiltro(idRelatorio: integer ' R.MargemDireita, ' + ' R.AlturaPapel, ' + ' R.LarguraPapel, ' + + ' R.Titulo, ' + ' R.Orientation, R.tipoSaida ' + ' FROM Relatorio R ' + ' LEFT JOIN XFilterDef F ' + @@ -109,87 +112,102 @@ procedure TImprimirRelatorioForm.ImprimirRelatorioComFiltro(idRelatorio: integer config.margemDireita := qry.fieldByName('margemDireita').AsInteger; if not qry.fieldByName('tipoSaida').IsNull then config.tipoSaida := qry.fieldByName('tipoSaida').AsString; - finally - acCustomSQLMainData.FreeQuery(qry); - end; - stream := TMemoryStream.Create; - getTemplateByName(TemplateName, stream); - if FilterName <> '' then - begin - ComboFilter.ClearViews; - ComboFilter.FilterDefName := FilterName; - ComboFilter.GetViews(); + config.NomeRelatorio := TemplateName; + stream := TMemoryStream.Create; + getTemplateByName(TemplateName, stream); - srchForm := TCustomSearchForm.Create(application); - with srchForm do + if FilterName <> '' then begin - FilterDefName := filterName; - srchForm.DataProvider := acCustomSQLMainData.prvFilter; - Execute('',3,toRetornarQuery); - where := GetExpressions; - order := getOrder; + ComboFilter.ClearViews; + ComboFilter.FilterDefName := FilterName; + ComboFilter.GetViews(); - if ConsultaCombo.GetExprList(ConsultaCombo.Items.IndexOf(ConsultaCombo.Text)).Text <> '' then + srchForm := TCustomSearchForm.Create(application); + with srchForm do begin - if where = '' then - where := ConsultaCombo.GetExprList(ConsultaCombo.Items.IndexOf(ConsultaCombo.Text)).Text - else - where := where + ' AND ' + - ConsultaCombo.GetExprList(ConsultaCombo.Items.IndexOf(ConsultaCombo.Text)).Text; + FilterDefName := filterName; + srchForm.DataProvider := acCustomSQLMainData.prvFilter; + Execute('',3,toRetornarQuery); + where := GetExpressions; + order := getOrder; + if ConsultaCombo.GetExprList(ConsultaCombo.Items.IndexOf(ConsultaCombo.Text)).Text <> '' then + begin + if where = '' then + where := ConsultaCombo.GetExprList(ConsultaCombo.Items.IndexOf(ConsultaCombo.Text)).Text + else + where := where + ' AND ' + + ConsultaCombo.GetExprList(ConsultaCombo.Items.IndexOf(ConsultaCombo.Text)).Text; + + end; + replaceReportSQLAddParam(report, stream, sqlResult.Text, Trim(where), Trim(order)); + free; end; - replaceReportSQLAddParam(report, stream, sqlResult.Text, Trim(where), Trim(order)); - free; + end + else + Report.Template.LoadFromStream(stream); + + + report.Units := utMillimeters; + if config.nomeImpressora<>'' then + report.PrinterSetup.PrinterName := + config.nomeImpressora; + if config.orientation = 1 then + report.PrinterSetup.Orientation := poPortrait; + if config.orientation = 2 then + report.PrinterSetup.Orientation := poLandscape; + + if config.alturaPapel <> -1 then + Report.PrinterSetup.PaperHeight := config.alturaPapel; + if config.larguraPapel <> -1 then + Report.PrinterSetup.PaperWidth := config.larguraPapel; + if config.margemInferior <> -1 then + Report.PrinterSetup.MarginBottom := config.margemInferior; + if config.margemEsquerda <> -1 then + Report.PrinterSetup.MarginLeft := config.margemEsquerda; + if config.margemDireita <> -1 then + Report.PrinterSetup.MarginRight := config.margemDireita; + if config.margemSuperior <> -1 then + Report.PrinterSetup.MarginTop := config.margemSuperior; + + if config.tipoSaida <> TSTela then + begin + if config.tipoSaida = TSPDF then extensao := 'pdf'; + if config.tipoSaida = TSTexto then extensao := 'txt'; + if FTextFileName = '' then + if not PromptForFileName(FTextFileName, '*.' + extensao, extensao, + '', '', true) then + exit; + + report.AllowPrintToFile := True; + report.TextFileName := FTextFileName; + report.ShowPrintDialog := false; + + if config.tipoSaida = TSPDF then + report.DeviceType := 'PDF'; + + if config.tipoSaida = TSTexto then + report.DeviceType := 'TextFile'; end; - end - else - Report.Template.LoadFromStream(stream); - - - report.Units := utMillimeters; - if config.nomeImpressora<>'' then - report.PrinterSetup.PrinterName := - config.nomeImpressora; - if config.orientation = 1 then - report.PrinterSetup.Orientation := poPortrait; - if config.orientation = 2 then - report.PrinterSetup.Orientation := poLandscape; - - if config.alturaPapel <> -1 then - Report.PrinterSetup.PaperHeight := config.alturaPapel; - if config.larguraPapel <> -1 then - Report.PrinterSetup.PaperWidth := config.larguraPapel; - if config.margemInferior <> -1 then - Report.PrinterSetup.MarginBottom := config.margemInferior; - if config.margemEsquerda <> -1 then - Report.PrinterSetup.MarginLeft := config.margemEsquerda; - if config.margemDireita <> -1 then - Report.PrinterSetup.MarginRight := config.margemDireita; - if config.margemSuperior <> -1 then - Report.PrinterSetup.MarginTop := config.margemSuperior; - - if config.tipoSaida <> TSTela then - begin - if config.tipoSaida = TSPDF then extensao := 'pdf'; - if config.tipoSaida = TSTexto then extensao := 'txt'; - if FTextFileName = '' then - if not PromptForFileName(FTextFileName, '*.' + extensao, extensao, - '', '', true) then - exit; - - report.AllowPrintToFile := True; - report.TextFileName := FTextFileName; - report.ShowPrintDialog := false; - - if config.tipoSaida = TSPDF then - report.DeviceType := 'PDF'; - - if config.tipoSaida = TSTexto then - report.DeviceType := 'TextFile'; - end; - report.Print; + updateContadorImpressao := MainData.GetQuery; + try + updateContadorImpressao.SQL.Text := 'UPDATE rb_item '+ + ' SET FREQUENCIAUSO = FREQUENCIAUSO+1, '+ + ' DATAULTIMAIMPRESSAO = ' + + QuotedStr(FormatDateTime('dd.mm.yyyy', MainData.GetServerDatetime)) + + ' WHERE ITEM_ID = ' + IntToStr(getTemplateIDByName(TemplateName)); + updateContadorImpressao.ExecSQL; + finally + acCustomSQLMainData.FreeQuery(updateContadorImpressao); + end; + + TParametroSistemaData.RegistrarUsoRecurso(Config.NomeRelatorio, rrRelatorio); + report.Print; + finally + acCustomSQLMainData.FreeQuery(qry); + end; end; procedure TImprimirRelatorioForm.ImprimirTemplate(templateName: string); @@ -224,7 +242,8 @@ function TImprimirRelatorioForm.findPipeline(name: string): TppDataPipeline; procedure TImprimirRelatorioForm.ReportPreviewFormCreate(Sender: TObject); begin inherited; - report.PreviewForm.WindowState := wsMaximized; + report.PreviewFormSettings.ZoomSetting := zs100Percent; + report.PreviewFormSettings.WindowState := wsMaximized; end; function TImprimirRelatorioForm.findComponentUserName(name: String): TComponent; diff --git a/Forms/RecursoEditFormUn.pas b/Forms/RecursoEditFormUn.pas index 1da27ac..eef0846 100644 --- a/Forms/RecursoEditFormUn.pas +++ b/Forms/RecursoEditFormUn.pas @@ -8,7 +8,8 @@ interface StdCtrls, Mask, DBCtrls, Grids, DBGrids, ComCtrls, wwdbedit, Wwdotdot, Wwdbcomb, Menus, ImgList, osActionList, ToolWin, Buttons, ExtCtrls, osComboSearch, osUtils, - Wwdbigrd, Wwdbgrid, DBTables, Wwdbspin, DBActns, acCustomSQLMainDataUn; + Wwdbigrd, Wwdbgrid, Wwdbspin, DBActns, acCustomSQLMainDataUn, + System.Actions {$IFDEF VER320} , System.ImageList {$ENDIF}; type TRecursoEditForm = class(TosCustomEditForm) diff --git a/Forms/ShowEventoLogFormUn.pas b/Forms/ShowEventoLogFormUn.pas index 4a1e30e..a3f9a40 100644 --- a/Forms/ShowEventoLogFormUn.pas +++ b/Forms/ShowEventoLogFormUn.pas @@ -38,8 +38,6 @@ implementation class procedure TShowEventoLogForm.execute(Usuario: string; datahora: TDateTime; Evento, detalhes: string); -var - frm: TShowEventoLogForm; begin with TShowEventoLogForm.create(nil) do begin diff --git a/Forms/UMensagemAguarde.dfm b/Forms/UMensagemAguarde.dfm new file mode 100644 index 0000000..37d311f --- /dev/null +++ b/Forms/UMensagemAguarde.dfm @@ -0,0 +1,38 @@ +object FrmMensagemAguarde: TFrmMensagemAguarde + Left = 541 + Top = 384 + Align = alCustom + BorderStyle = bsNone + BorderWidth = 4 + ClientHeight = 48 + ClientWidth = 358 + Color = cl3DDkShadow + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = True + Position = poDesigned + OnActivate = FormActivate + PixelsPerInch = 96 + TextHeight = 13 + object MensagemPanel: TPanel + Left = 0 + Top = 0 + Width = 358 + Height = 48 + Align = alClient + BorderStyle = bsSingle + Color = clActiveBorder + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentBackground = False + ParentFont = False + TabOrder = 0 + ExplicitWidth = 381 + end +end diff --git a/Forms/UMensagemAguarde.pas b/Forms/UMensagemAguarde.pas new file mode 100644 index 0000000..ae8148e --- /dev/null +++ b/Forms/UMensagemAguarde.pas @@ -0,0 +1,88 @@ +unit UMensagemAguarde; + +interface + +uses + SysUtils, Classes, Variants, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls; + +type + TFrmMensagemAguarde = class(TForm) + MensagemPanel: TPanel; + procedure FormActivate(Sender: TObject); + private + procedure SetPositionScreean(ControlLock: TWinControl); + public + procedure setMensagem(Texto: String; useProcessMessages: Boolean = False); virtual; + procedure msgShow; + procedure msgClose; + procedure ShowTop(Parent : TWinControl); + function getIsCancelled: Boolean; virtual; + end; + +implementation + +{$R *.dfm} + +{ TFrmMensagemAguarde } + +procedure TFrmMensagemAguarde.FormActivate(Sender: TObject); +begin + Self.Refresh; // p/ atualizar a tela + MensagemPanel.Refresh; + Application.ProcessMessages; +end; + +function TFrmMensagemAguarde.getIsCancelled: Boolean; +begin + result := False; +end; + +procedure TFrmMensagemAguarde.msgClose; +begin + self.close; +end; + +procedure TFrmMensagemAguarde.msgShow; +begin + self.show; +end; + +procedure TFrmMensagemAguarde.setMensagem(Texto: String; useProcessMessages: Boolean = False); +var + LarguraTexto : Integer; +begin + if (Texto = '') then + Texto := 'Aguarde, Carregando...'; + MensagemPanel.Caption := Texto; + + LarguraTexto := Trunc(Self.Canvas.TextWidth('M') * (Length(Texto) * 1.2)); + if Self.Width < LarguraTexto then + Self.Width := LarguraTexto; + + if useProcessMessages then + Application.ProcessMessages; + MensagemPanel.Update; + MensagemPanel.Refresh; + Refresh; +end; + +procedure TFrmMensagemAguarde.ShowTop(Parent: TWinControl); +begin + Self.SetPositionScreean(Parent); + Self.Update +end; + +procedure TFrmMensagemAguarde.SetPositionScreean(ControlLock: TWinControl); +begin + if trunc((ControlLock.Width - self.Width) / 2) > 0 then + self.Left := trunc((ControlLock.Width - self.Width) / 2) + else + self.Left := 10; + if trunc((ControlLock.Height - self.Height) / 25) > 0 then + self.Top := trunc((ControlLock.Height - self.Height) / 2) + else + self.Top := 25; +end; + +end. diff --git a/Forms/osCustomEditFrm.dfm b/Forms/osCustomEditFrm.dfm index 8f88d38..70f8dd2 100644 --- a/Forms/osCustomEditFrm.dfm +++ b/Forms/osCustomEditFrm.dfm @@ -3,18 +3,20 @@ inherited osCustomEditForm: TosCustomEditForm Top = 351 Caption = 'osCustomEditForm' ClientHeight = 297 - ClientWidth = 486 + ClientWidth = 538 + KeyPreview = True Menu = MainMenu OldCreateOrder = True OnCloseQuery = FormCloseQuery - ExplicitWidth = 502 - ExplicitHeight = 355 + OnKeyDown = FormKeyDown + ExplicitWidth = 554 + ExplicitHeight = 356 PixelsPerInch = 96 TextHeight = 13 object MainControlBar: TControlBar [0] Left = 0 Top = 0 - Width = 486 + Width = 538 Height = 30 Align = alTop AutoDrag = False @@ -23,7 +25,7 @@ inherited osCustomEditForm: TosCustomEditForm object ControlBarPanel: TPanel Left = 11 Top = 2 - Width = 358 + Width = 362 Height = 22 Align = alLeft Alignment = taLeftJustify @@ -81,7 +83,7 @@ inherited osCustomEditForm: TosCustomEditForm end object PararButton: TSpeedButton Tag = 4 - Left = 300 + Left = 304 Top = 0 Width = 58 Height = 22 @@ -91,6 +93,19 @@ inherited osCustomEditForm: TosCustomEditForm OnClick = PararButtonClick end end + object LogsAuditoriaButton: TButton + AlignWithMargins = True + Left = 386 + Top = 2 + Width = 146 + Height = 22 + Cursor = crHelp + Align = alRight + Caption = 'Logs de Auditoria' + TabOrder = 1 + Visible = False + OnClick = LogsAuditoriaButtonClick + end end inherited ActionList: TosActionList Left = 184 @@ -168,7 +183,7 @@ inherited osCustomEditForm: TosCustomEditForm Left = 216 Top = 40 Bitmap = { - 494C0101010004000C0010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 494C010101000500040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 0000000000003600000028000000400000001000000001002000000000000010 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 diff --git a/Forms/osCustomEditFrm.pas b/Forms/osCustomEditFrm.pas index f4beaa9..534aee4 100644 --- a/Forms/osCustomEditFrm.pas +++ b/Forms/osCustomEditFrm.pas @@ -9,7 +9,7 @@ interface ToolWin, ExtCtrls, osActionList, osClientDataset, provider, osUtils, Grids, Wwdbigrd, Wwdbgrid, wwdbdatetimepicker, wwrcdpnl, Mask, wwdbedit, wwriched, osComboSearch, osDBDualTree, wwDBSpin, wwDBNavigator, wwDBcomb, wwDBlook, DBGrids, - System.Actions; + System.Actions, System.UITypes, LogsAuditoriaFormUn; type TFormMode = (fmEdit, fmInsert, fmView, fmDelete); @@ -52,6 +52,7 @@ TosCustomEditForm = class(TosForm) ExcluirButton: TSpeedButton; FecharButton: TSpeedButton; PararButton: TSpeedButton; + LogsAuditoriaButton: TButton; procedure FormShow(Sender: TObject); procedure SaveActionExecute(Sender: TObject); procedure SaveCloseActionExecute(Sender: TObject); @@ -65,20 +66,28 @@ TosCustomEditForm = class(TosForm) procedure FormCreate(Sender: TObject); procedure PararButtonClick(Sender: TObject); procedure MasterDataSourceDataChange(Sender: TObject; Field: TField); + procedure LogsAuditoriaButtonClick(Sender: TObject); + procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private FDatamodule: TDatamodule; FInitialControl: TWinControl; FVisibleButtons: TVisibleButtons; + FLogsAuditoria: TLogsAuditoriaForm; procedure SetExternalCDS(const Value: TosClientDataset); procedure SetDatamodule(const Value: TDatamodule); function GetKeyValues: Variant; - procedure ControlButtons; + function GetPrimaryKeyField: TField; + protected FMasterDataset: TosClientDataset; FKeyValues: variant; FFormMode: TFormMode; FExternalCDS: TosClientDataset; FIsModified: boolean; + FIdGenericoLog: Integer; + FIdClasseLog: Integer; + FNumProtocoloLog: string; + procedure ControlButtons; procedure MasterDatasetAfterEdit(DataSet: TDataSet); virtual; procedure CheckMasterDataset; procedure Loaded; override; @@ -87,6 +96,7 @@ TosCustomEditForm = class(TosForm) procedure ChangeColor(PReadOnly: boolean); procedure ReconcileError(DataSet: TCustomClientDataSet; E: EReconcileError; UpdateKind: TUpdateKind; var Action: TReconcileAction); + procedure DeleteError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction); public continue: boolean; constructor Create(AOwner: TComponent); override; @@ -111,7 +121,7 @@ TosCustomEditFormClass = class of TosCustomEditForm; implementation -uses TradutorFormUn; +uses TradutorFormUn, osLogin; {$R *.DFM} @@ -123,6 +133,7 @@ function TosCustomEditForm.Edit(const KeyFields: string; const KeyValues: Varian CheckMasterDataset; ParseParams(FMasterDataset.Params, KeyFields, KeyValues); + FMasterDataset.close; FMasterDataset.Open; OnCheckActionsAction.Execute; @@ -169,8 +180,9 @@ function TosCustomEditForm.View(const KeyFields: string; const KeyValues: Varian FFormMode := fmView; CheckMasterDataset; - FMasterDataset.ReadOnly := True; + //FMasterDataset.ReadOnly := True; ParseParams(FMasterDataset.Params, KeyFields, KeyValues); + FMasterDataset.Close; FMasterDataset.Open; OnCheckActionsAction.Execute; @@ -208,9 +220,12 @@ procedure TosCustomEditForm.SetExternalCDS(const Value: TosClientDataset); procedure TosCustomEditForm.MasterDatasetAfterEdit(DataSet: TDataSet); begin inherited; - SaveAction.Enabled := True; - SaveCloseAction.Enabled := True; - SaveNewAction.Enabled := oInserir in Operacoes; + if not (FormMode in [fmView, fmDelete]) then + begin + SaveAction.Enabled := True; + SaveCloseAction.Enabled := True; + SaveNewAction.Enabled := oInserir in Operacoes; + end; end; procedure TosCustomEditForm.FormShow(Sender: TObject); @@ -318,6 +333,60 @@ procedure TosCustomEditForm.Loaded; FInitialControl := ActiveControl; end; +procedure TosCustomEditForm.LogsAuditoriaButtonClick(Sender: TObject); +var + lPoint: TPoint; + loginForm: TLoginUsuario; +begin + inherited; + loginForm := TLoginUsuario.Create; + try + loginForm.getInfoUsuarioLogadoSistema; + if UpperCase(loginForm.Apelido) = 'SUPORTE' then + begin + lPoint := LogsAuditoriaButton.ClientToScreen(Point(0,0)); + + FLogsAuditoria := TLogsAuditoriaForm.Create(self); + try + if FIdGenericoLog = 0 then + FLogsAuditoria.FIdRegistro := FMasterDataset.FieldByName(self.GetPrimaryKeyField.FieldName).AsInteger + else + FLogsAuditoria.FIdRegistro := FIdGenericoLog; + FLogsAuditoria.FIdClasseLog := FIdClasseLog; + FLogsAuditoria.FNumProtocoloLog := FNumProtocoloLog; + FLogsAuditoria.Top := lPoint.Y + LogsAuditoriaButton.Height + 2; + FLogsAuditoria.ShowModal; + finally + FreeAndNil(FLogsAuditoria); + end; + end; + finally + FreeAndNil(loginForm); + end; +end; + +function TosCustomEditForm.GetPrimaryKeyField: TField; +var + I: Integer; +begin + Result := nil; + + // Verifique se o ClientDataSet está vazio + if not FMasterDataset.Active or FMasterDataset.IsEmpty then + Exit; + + // Percorra os campos do ClientDataSet + for I := 0 to FMasterDataset.FieldCount - 1 do + begin + // Verifique se o campo é uma chave primária + if pfInKey in FMasterDataset.Fields[I].ProviderFlags then + begin + Result := FMasterDataset.Fields[I]; + Break; // Saia do loop quando encontrar a primeira chave primária + end; + end; +end; + procedure TosCustomEditForm.CheckMasterDataset; begin if not Assigned(FMasterDataset) then @@ -358,13 +427,16 @@ procedure TosCustomEditForm.SetDatamodule(const Value: TDatamodule); procedure TosCustomEditForm.CheckChanges; begin - if (FMasterDataset.ChangeCount > 0) or //(FMasterDataset.UpdateStatus=usModified) or - (fmasterdataset.state in [dsEdit, dsInsert]) then - - if (MessageDlg('Os dados foram alterados. Salvar antes de sair?', mtConfirmation, - [mbYes, mbNo], 0) = mrYes) then + if FMasterDataset <> nil then begin - SaveAction.Execute; + if (FMasterDataset.ChangeCount > 0) or //(FMasterDataset.UpdateStatus=usModified) or + (fmasterdataset.state in [dsEdit, dsInsert]) then + + if (MessageDlg('Os dados foram alterados. Salvar antes de sair?', mtConfirmation, + [mbYes, mbNo], 0) = mrYes) then + begin + SaveAction.Execute; + end; end; end; @@ -372,7 +444,11 @@ procedure TosCustomEditForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin inherited; - CheckChanges; + if FormMode <> fmView then + CheckChanges; + + if FLogsAuditoria <> nil then + FreeAndNil(FLogsAuditoria); end; procedure TosCustomEditForm.NewActionExecute(Sender: TObject); @@ -487,7 +563,31 @@ procedure TosCustomEditForm.ReconcileError(DataSet: TCustomClientDataSet; if (E.ErrorCode=1) and (UpdateKind=ukDelete) then MessageDlg('Não é possível excluir este registro pois existem dados no sistema que dependem dele.', mtError, [mbOK], 0) else - ShowMessage('Erro no clientDataSet com a mensagem: ' + quotedStr(E.message)); + begin + if Pos( 'deadlock', E.message) > 0 then + begin + ShowMessage('Esse registro esta sendo atualizado (sincronizado) pelo Híbrido ou outro usuário, salve novamente e verifique se as alterações foram aplicadas corretamente'); + Action := raCorrect; + end + else + ShowMessage('Erro no clientDataSet com a mensagem: ' + quotedStr(E.message)); + end; +end; + +procedure TosCustomEditForm.DeleteError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction); +begin + if Pos( 'deadlock', LowerCase(E.message)) > 0 then + begin + ShowMessage('Esse registro esta sendo atualizado (sincronizado) pelo Híbrido ou outro usuário, salve novamente e verifique se as alterações foram aplicadas corretamente'); + Sleep(2000); + Action := daRetry; + end + else + begin + ShowMessage('Erro no Delete do clientDataSet com a mensagem: ' + quotedStr(E.message)); + Sleep(2000); + Action := daRetry; + end; end; procedure TosCustomEditForm.FormCreate(Sender: TObject); @@ -495,14 +595,27 @@ procedure TosCustomEditForm.FormCreate(Sender: TObject); i: integer; begin inherited; + FIdGenericoLog := 0; + FIdClasseLog := 0; + FNumProtocoloLog := ''; for i := 0 to ComponentCount-1 do begin if Components[i] is TClientDataSet then + begin (Components[i] as TClientDataSet).onReconcileError := ReconcileError; + (Components[i] as TClientDataSet).OnDeleteError := DeleteError; + end; end; end; +procedure TosCustomEditForm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); +begin + inherited; + if (Shift = [ssCtrl, ssShift]) and (Key = vkL) then + LogsAuditoriaButton.Click; +end; + function TosCustomEditForm.canInsert: boolean; begin Result := true; diff --git a/Forms/osCustomLoginFormUn.dfm b/Forms/osCustomLoginFormUn.dfm index c3f5af4..25a0e06 100644 --- a/Forms/osCustomLoginFormUn.dfm +++ b/Forms/osCustomLoginFormUn.dfm @@ -13,7 +13,7 @@ object osCustomLoginForm: TosCustomLoginForm Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False - Position = poDesktopCenter + Position = poScreenCenter OnCreate = FormCreate OnShow = FormShow PixelsPerInch = 96 diff --git a/Forms/osCustomMainFrm.dfm b/Forms/osCustomMainFrm.dfm index 52ce06b..2e2ce98 100644 --- a/Forms/osCustomMainFrm.dfm +++ b/Forms/osCustomMainFrm.dfm @@ -9,26 +9,25 @@ inherited osCustomMainForm: TosCustomMainForm Visible = True WindowState = wsMaximized ExplicitWidth = 1024 - ExplicitHeight = 703 + ExplicitHeight = 704 PixelsPerInch = 96 TextHeight = 13 object ControlBar: TControlBar [0] Left = 0 Top = 0 Width = 1008 - Height = 37 + Height = 39 Align = alTop AutoDrag = False DragKind = dkDock TabOrder = 0 object MainToolbar: TToolBar - Left = 14 + Left = 11 Top = 2 - Width = 262 - Height = 22 + Width = 268 AutoSize = True - ButtonHeight = 29 - ButtonWidth = 29 + ButtonHeight = 32 + ButtonWidth = 32 EdgeInner = esNone EdgeOuter = esNone Images = MainImageList @@ -41,59 +40,55 @@ inherited osCustomMainForm: TosCustomMainForm ShowHint = True end object EditToolButton: TToolButton - Left = 29 + Left = 32 Top = 0 Action = EditAction ParentShowHint = False ShowHint = True end object DeleteToolButton: TToolButton - Left = 58 + Left = 64 Top = 0 Action = DeleteAction ParentShowHint = False ShowHint = True end - object ToolButton11: TToolButton - Left = 87 - Top = 0 - Width = 8 - Caption = 'ToolButton11' - ImageIndex = 1 - Style = tbsSeparator - end object ViewToolButton: TToolButton - Left = 95 + Left = 96 Top = 0 Action = ViewAction ParentShowHint = False ShowHint = True end object PrintToolButton: TToolButton - Left = 124 + Left = 128 Top = 0 Action = PrintAction ParentShowHint = False ShowHint = True end - object ToolButton1: TToolButton - Left = 153 - Top = 0 - Width = 8 - Caption = 'ToolButton1' - ImageIndex = 5 - Style = tbsSeparator - end - object ToolButton4: TToolButton - Left = 161 + object PrintAllToolButton: TW7ToolButton + Left = 160 Top = 0 - Width = 8 - Caption = 'ToolButton4' - ImageIndex = 9 - Style = tbsSeparator + Width = 72 + Height = 32 + Hint = 'Imprimir Todos' + Version = '1.0.2.0' + Caption = 'Todos' + Images = MainImageList + ImageIndex = 4 + IconSize = is24px + Font.Charset = DEFAULT_CHARSET + Font.Color = 5978398 + Font.Height = -12 + Font.Name = 'Segoe UI' + Font.Style = [] + Action = PrintAction + ParentFont = False + TabOrder = 0 end object PaginaInicialToolButton: TToolButton - Left = 169 + Left = 232 Top = 0 Caption = 'P'#225'gina Inicial' ImageIndex = 9 @@ -101,9 +96,9 @@ inherited osCustomMainForm: TosCustomMainForm end end object ConsultaPanel: TPanel - Left = 289 + Left = 292 Top = 2 - Width = 481 + Width = 656 Height = 48 Align = alTop BevelOuter = bvNone @@ -117,7 +112,7 @@ inherited osCustomMainForm: TosCustomMainForm Caption = 'Pesquisa:' end object EditarTodosButton: TSpeedButton - Left = 400 + Left = 568 Top = 4 Width = 81 Height = 22 @@ -165,7 +160,7 @@ inherited osCustomMainForm: TosCustomMainForm ViewDefault = 0 end object SearchEdit: TEdit - Left = 320 + Left = 488 Top = 4 Width = 73 Height = 21 @@ -195,24 +190,32 @@ inherited osCustomMainForm: TosCustomMainForm end> end object Panel2: TPanel [2] - Left = 161 - Top = 37 - Width = 847 - Height = 589 + Left = 0 + Top = 39 + Width = 1008 + Height = 587 Align = alClient BevelOuter = bvNone TabOrder = 2 + object Splitter1: TSplitter + Left = 165 + Top = 33 + Width = 4 + Height = 554 + ExplicitHeight = 556 + end object WebBrowser: TWebBrowser - Left = 0 + Left = 169 Top = 33 - Width = 847 - Height = 556 + Width = 839 + Height = 554 Align = alClient TabOrder = 2 - ExplicitWidth = 735 - ExplicitHeight = 540 + ExplicitLeft = 185 + ExplicitWidth = 823 + ExplicitHeight = 556 ControlData = { - 4C0000008A570000773900000000000000000000000000000000000000000000 + 4C000000B7560000423900000000000000000000000000000000000000000000 000000004C000000000000000000000001000000E0D057007335CF11AE690800 2B2E12620A000000000000004C0000000114020000000000C000000000000046 8000000000000000000000000000000000000000000000000000000000000000 @@ -221,7 +224,7 @@ inherited osCustomMainForm: TosCustomMainForm object ResourcePanel: TPanel Left = 0 Top = 0 - Width = 847 + Width = 1008 Height = 33 Align = alTop Alignment = taLeftJustify @@ -237,8 +240,8 @@ inherited osCustomMainForm: TosCustomMainForm TabOrder = 1 end object Grid: TwwDBGrid - Left = 56 - Top = 46 + Left = 83 + Top = 39 Width = 389 Height = 283 IniAttributes.FileName = 'LabMaster.ini.ini' @@ -268,6 +271,44 @@ inherited osCustomMainForm: TosCustomMainForm TitleImageList = ArrowsImageList PaintOptions.AlternatingRowColor = clWhite end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 165 + Height = 554 + Align = alLeft + TabOrder = 3 + object TreeView1: TTreeView + Left = 1 + Top = 1 + Width = 163 + Height = 531 + Align = alClient + Color = clBtnFace + HotTrack = True + Images = BarSmallImages + Indent = 19 + MultiSelectStyle = [msControlSelect, msShiftSelect] + ShowLines = False + ShowRoot = False + StateImages = BarSmallImages + TabOrder = 0 + OnChange = TreeView1Change + OnCustomDrawItem = TreeView1CustomDrawItem + end + object EdtPesquisa: TEdit + Left = 1 + Top = 532 + Width = 163 + Height = 21 + Align = alBottom + AutoSelect = False + TabOrder = 1 + OnChange = EdtPesquisaChange + OnEnter = EdtPesquisaEnter + OnKeyDown = EdtPesquisaKeyDown + end + end end object RelatPanel: TPanel [3] Left = 333 @@ -380,8 +421,8 @@ inherited osCustomMainForm: TosCustomMainForm OnClick = spbPreviewPrintClick end object spbPreviewWhole: TSpeedButton - Left = 38 - Top = 4 + Left = 39 + Top = 3 Width = 22 Height = 24 Hint = 'Whole Page' @@ -705,24 +746,6 @@ inherited osCustomMainForm: TosCustomMainForm end end end - object TreeView1: TTreeView [4] - Left = 0 - Top = 37 - Width = 161 - Height = 589 - Align = alLeft - Color = clBtnFace - HotTrack = True - Images = BarSmallImages - Indent = 19 - MultiSelectStyle = [msControlSelect, msShiftSelect] - ShowLines = False - ShowRoot = False - StateImages = BarSmallImages - TabOrder = 4 - OnAdvancedCustomDrawItem = TreeView1AdvancedCustomDrawItem - OnChange = TreeView1Change - end inherited ActionList: TosActionList Images = MainImageList Left = 784 @@ -848,7 +871,7 @@ inherited osCustomMainForm: TosCustomMainForm OnExecute = LogoutActionExecute end end - object MainMenu: TMainMenu [6] + object MainMenu: TMainMenu [5] Left = 812 Top = 72 object Arquivo: TMenuItem @@ -874,9 +897,6 @@ inherited osCustomMainForm: TosCustomMainForm object Imprimir: TMenuItem Action = PrintAction end - object ImprimirFiltro: TMenuItem - Action = PrintFilterAction - end object N2: TMenuItem Caption = '-' end @@ -924,12 +944,12 @@ inherited osCustomMainForm: TosCustomMainForm Caption = 'Ajuda' end end - object FilterDatasource: TDataSource [7] + object FilterDatasource: TDataSource [6] DataSet = FilterDataset Left = 724 Top = 112 end - object FilterDataset: TosClientDataset [8] + object FilterDataset: TosClientDataset [7] Aggregates = <> FetchOnDemand = False Params = <> @@ -942,7 +962,7 @@ inherited osCustomMainForm: TosCustomMainForm Left = 696 Top = 112 end - object PopupMenu: TPopupMenu [9] + object PopupMenu: TPopupMenu [8] Left = 812 Top = 112 object Novo1: TMenuItem @@ -983,7 +1003,7 @@ inherited osCustomMainForm: TosCustomMainForm Left = 4 Top = 96 Bitmap = { - 494C010101000400380020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 494C010101000500040020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 0000000000003600000028000000800000002000000001002000000000000040 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000CECEBD00C6C6BD00C6BDB500C6BDB500C6BD @@ -1522,7 +1542,7 @@ inherited osCustomMainForm: TosCustomMainForm Left = 36 Top = 96 Bitmap = { - 494C010101000400380010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 494C010101000500040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 0000000000003600000028000000400000001000000001002000000000000010 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -1693,7 +1713,7 @@ inherited osCustomMainForm: TosCustomMainForm Left = 144 Top = 240 Bitmap = { - 494C010102000400380010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 494C010102000500040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 0000000000003600000028000000400000001000000001002000000000000010 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2017,7 +2037,7 @@ inherited osCustomMainForm: TosCustomMainForm AutoStop = False PrinterSetup.BinName = 'Default' PrinterSetup.DocumentName = 'Report' - PrinterSetup.PaperName = 'Letter' + PrinterSetup.PaperName = 'Carta' PrinterSetup.PrinterName = 'Default' PrinterSetup.SaveDeviceSettings = False PrinterSetup.mmMarginBottom = 6350 @@ -2026,7 +2046,7 @@ inherited osCustomMainForm: TosCustomMainForm PrinterSetup.mmMarginTop = 6350 PrinterSetup.mmPaperHeight = 279401 PrinterSetup.mmPaperWidth = 215900 - PrinterSetup.PaperSize = 119 + PrinterSetup.PaperSize = 1 Template.DatabaseSettings.DataPipeline = plItem Template.DatabaseSettings.NameField = 'Name' Template.DatabaseSettings.TemplateField = 'Template' @@ -2099,7 +2119,7 @@ inherited osCustomMainForm: TosCustomMainForm Left = 674 Top = 52 Bitmap = { - 494C01010A000E00380016001600FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 494C01010B000D00040016001600FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 000000000000360000002800000058000000420000000100200000000000C05A 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2107,9 +2127,9 @@ inherited osCustomMainForm: TosCustomMainForm 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2118,9 +2138,9 @@ inherited osCustomMainForm: TosCustomMainForm 0000000000000000000000000000000000000000000000000000000000000000 0000CEBDB500AD7B73008C3931007B1810006B00000063000000731010008431 3100A5737300C6BDB50000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2129,9 +2149,9 @@ inherited osCustomMainForm: TosCustomMainForm 000000000000000000000000000000000000000000000000000000000000B584 73008418100084100800B5421800D66B2900DE733100DE733100CE6B2900A539 18006B0000006B080800A5737300000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99BA + D700709FE1005C97E700328CFF00328CFF005D98E800709FE1008DAFD100FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2140,9 +2160,9 @@ inherited osCustomMainForm: TosCustomMainForm 0000000000000000000000000000000000000000000000000000A55A4A008C21 0800BD521800FF943900FF943900FF943900FF943900FF943900FF943900FF94 3900FF943900B54218006B0000008C4239000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBBCAD3004492 + E500318EFF003893FF004CA5FF004DA6FF003994FF00318DFF004595E200AFBD + D900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2151,9 +2171,9 @@ inherited osCustomMainForm: TosCustomMainForm 00000000000000000000000000000000000000000000A5634A0094290800E77B 2100FF8C2900FF8C2900FF8C2900FF8C2900FF8C2900FF8C2900FF8C2900FF8C 2900FF8C2900FF8C2900E76B21006B0000008C42390000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFC0D7005C9DDA004999 + FF004D90FF004588FD00387AFD00397BFF004487FC00498CFB004F9FFF005094 + E1009DB9D400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2162,9 +2182,9 @@ inherited osCustomMainForm: TosCustomMainForm 000000000000000000000000000000000000BD8C7B0094290800EF731000FF84 1800FF841800FF841800FF841800FF841800FF841800FF841800FF841800FF84 1800FF841800FF841800FF841800E76B10006B000000A5737300000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0CCE400669EE3003493FF004386 + FB003781FF00377EFF003D7BFF003F7DFF00387FFF00357FFF004582FA003192 + FF00569BE500A7C0DE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2173,9 +2193,9 @@ inherited osCustomMainForm: TosCustomMainForm 0000000000000000000000000000CEC6B5009C391800CE520800FF7B0800FF7B 0800FF943100FFDEBD00FFDEBD00FFDEBD00FFDEBD00FFDEBD00FFDEBD00FFDE BD00FFDEBD00FFA55200FF7B0800FF7B0800B53100006B080800C6BDB5000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71A7E4003A91F0003D91FF003780 + FF003D7FFF003C86FF004398FD00469BFF00418BFF003F81FF003A80FF003788 + FF003790FF005AA2E400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2184,9 +2204,9 @@ inherited osCustomMainForm: TosCustomMainForm 0000000000000000000000000000BD947B00A5391000FF730000FF730000FF73 0000FFBD7300FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFBD7300FF730000FF730000FF7300006B000000A57373000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3591FF003C84F4003788FF00348E + FF00458EFC002E85FF00F0FDFF00F9FFFF00F7FFFF0050A8F3002D94FF003984 + FF004C8FFC003187F500E4DDE400FFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2195,9 +2215,9 @@ inherited osCustomMainForm: TosCustomMainForm BD00000000000000000000000000AD634200CE520800FF730000FF7B0000FF73 0000FFBD7300FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFBD7300FF730000FF730000FF730000A5290000843131000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFC8D5E5003588FF00398EFA003E99FF003795 + F700388BFB00579CF7004B94FB00F2F5FF00F2FAFF00FBFFF90056B2FB004492 + FF003B8EF8003E91FF0093BCEB00FFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2206,9 +2226,9 @@ inherited osCustomMainForm: TosCustomMainForm AD00000000000000000000000000AD522900E7630000FF7B0000FF7B0000FF7B 0000FFBD7B00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFBD7300FF7B0000FF7B0000FF7B0000CE4A0000731010000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFF92BFE100328AFF003897FF00429DFC0072B2 + F30059B8F40037ADFE00499BFA005095ED00F7FBFF00FFFCFF00E8F7FF0040A4 + FE003E92F4003199FF0063AAFC00FFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2217,9 +2237,9 @@ inherited osCustomMainForm: TosCustomMainForm AD00000000000000000000000000AD421000EF731000FF8C1800FF8C1800FF9C 3100FFE7C600FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFDEBD00FF9C3100FF7B0000FF7B0000DE5A0000630000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFF6EB5E9003D9BFF00419AFF0049AAFC00E7F4 + FF00F3FFFF00FAF7FF00F3F7FF00FFFAFC00FFFFF600EFFDFC00FFFFF60052AF + F50048A2F700479FFF005BA7EE00FFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2228,9 +2248,9 @@ inherited osCustomMainForm: TosCustomMainForm BD00000000000000000000000000AD4A1800EF7B1000FF9C3100FF9C3100F7D6 C600FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFF7EF00FF7B0000FF7B0000DE5A0000630000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFF6BB1F1004BA4FD0044A4FE0048AFFC00FFFD + FA00FFFCFD00F8FCFD00F1FBFF00FAFBFF00FCFFFF00FFFFF000F5FFFF00F0FC + FF0032A5FE003A9BFF00459FF400FFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2239,9 +2259,9 @@ inherited osCustomMainForm: TosCustomMainForm 0000000000000000000000000000B55A2900E7731800FFA55200FFA55200EFAD 7B00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00F7AD6300FF7B0000FF7B0000D6520000731010000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFF77BDF9004BA3FF003AB0FE004CA2F300F6FB + FA00FFFCFF00FAFFFF00FFFFF300FFF8F900FFF9FF00FFFFFB00FFF7FF004CB2 + F1002FA5FD0048ADFE005CA3F300FFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2250,9 +2270,9 @@ inherited osCustomMainForm: TosCustomMainForm 0000000000000000000000000000BD734A00D6630800FFB56300FFB56B00FFB5 6B00EFA56B00F7EFE700FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00F7C69400FFA54200FF8C1800FF7B0000AD3100008C3931000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFB4D9FF003CAEFE0042ACF80043ACFE0055AE + FD0042AAFB0040A9FE0046AEFE0056B8EC00FFFFFD00FFFFFA00F0F7FF003EAE + FE004CADF50036AFFE0091C6FD00FFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2261,9 +2281,9 @@ inherited osCustomMainForm: TosCustomMainForm 0000000000000000000000000000C69C7B00B5521800FFA54200FFC68400FFC6 8400FFC68400F7B57B00EFCEBD00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFD6A500FFC68400FFC68400FFAD52007B100000AD7B73000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFD0EFFF003EB1FE0041AFFE003BB2F8003AAF + F7003EB2F3004DB8FE0049B6F400EDF9FD00F5FFFF00EAFAFF0054B8F6003AB2 + FD0049B5FE004CAFFE00B7E3FF00FFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2272,9 +2292,9 @@ inherited osCustomMainForm: TosCustomMainForm 0000000000000000000000000000CEC6B500B55A2100DE6B1000FFCE9400FFD6 A500FFD6A500FFD6A500FFCE9C00E7BD9C00FFF7EF00FFFFFF00FFDECE00FFEF D600FFEFD600FFD6AD00FFD6A500FFD6A500BD5218007B100800CEBDB5000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5BBBF50037B0FE004FBDFE0047B7 + FE0037ADFE0053C1FE00CDEBFF00FFFDFF004EC1F90048B6FE0042B7FE0059C3 + F9003ABAFE0040B4FE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2283,9 +2303,9 @@ inherited osCustomMainForm: TosCustomMainForm 000000000000000000000000000000000000C69C8400BD521800F7842100FFDE AD00FFDEBD00FFDEBD00FFDEBD00FFDEBD00EFBD9C00F7CEAD00FFDEBD00FFDE BD00FFDEBD00FFDEBD00FFDEBD00E78C390084180000AD847300000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBBDFFF0053BBF8002EB2FB0042C2 + FE005BC5FE002CB6FA004CBDF40056BCEF004BBEF60039BDFE0040BEFD003DC2 + FD003BBCFC009CD5F900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2294,9 +2314,9 @@ inherited osCustomMainForm: TosCustomMainForm 00000000000000000000000000000000000000000000BD845200BD521800F784 2100FFDEB500FFEFD600FFEFD600FFEFD600FFEFD600FFEFD600FFEFD600FFEF D600FFEFD600FFE7C600E79442008C2108009C52420000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4DCFB004AC4FB003EC6 + FE004BC2FC003BC6F90030C7FE003AC3FE004BC5FE0053C6F70047C8FE0035C0 + F80087DBF900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2305,9 +2325,9 @@ inherited osCustomMainForm: TosCustomMainForm 0000000000000000000000000000000000000000000000000000BD845200BD52 1800DE6B1000FFB56B00FFE7CE00FFF7EF00FFF7EF00FFF7EF00FFF7EF00FFEF DE00FFC68C00C65A180094290800A55A4A000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6ECFE0051C1 + F3003CCBFE0060D2FE0056D1FE004AC7FE004BC6FE004FD3FE003EC3F2008EDB + F600FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2316,9 +2336,9 @@ inherited osCustomMainForm: TosCustomMainForm 000000000000000000000000000000000000000000000000000000000000C69C 7B00B55A2100B5521000D65A0800E77B1800EF8C3900E78C3900DE7B2900C652 08009C31080094311000B58C7B00000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84DE + FE0041CBFE0039C1FE003DC6FE003EC8F8003BC8F6002ECBFE0086DAFE00FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2327,6 +2347,9 @@ inherited osCustomMainForm: TosCustomMainForm 0000000000000000000000000000000000000000000000000000000000000000 0000CEC6B500C69C7B00BD734A00AD522900A5421000A5391000A54A2100AD63 4200BD8C7B00CEBDB50000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2335,12 +2358,9 @@ inherited osCustomMainForm: TosCustomMainForm 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 diff --git a/Forms/osCustomMainFrm.pas b/Forms/osCustomMainFrm.pas index 45914de..c2cbbed 100644 --- a/Forms/osCustomMainFrm.pas +++ b/Forms/osCustomMainFrm.pas @@ -11,17 +11,19 @@ interface ADODB, Provider, osFrm, osAppResources, ppViewr, ppClass, ppReport, ppComm, ppRelatv, ppDB, ppDBPipe, ppBands, ppCache, ppVar, ppCtrls, ppProd, ppPrnabl, osActionList, osClientDataset, osMD5, - osUtils, OleCtrls, SHDocVw, ppTmplat, osSQLDataSet, dbTables, + osUtils, OleCtrls, SHDocVw, ppTmplat, osSQLDataSet, SqlExpr, Data.DBXFirebird, daIDE, daDBExpress, ppCTDsgn, raIDE, myChkBox, ppModule, daDataModule, FMTBcd, osCustomDataSetProvider, osSQLDataSetProvider, daSQl, daQueryDataView, ppTypes, acCustomReportUn, osSQLQuery, acFilterController, CommCtrl, clipbrd, osCustomLoginFormUn, - acReportContainer, ppParameter, Data.DBXInterBase, System.Actions;//ppWWRichEd; + acReportContainer, ppParameter, Data.DBXInterBase, System.Actions, Vcl.Samples.Spin, W7Classes, W7Buttons, + System.UITypes; type TDatamoduleClass = class of TDatamodule; TTipoExibicao = (teGrid, teRelat); + TOnEditForm = procedure (AForm: TosCustomEditForm) of object; TosCustomMainForm = class(TosForm) MainMenu: TMainMenu; @@ -46,7 +48,6 @@ TosCustomMainForm = class(TosForm) ViewAction: TAction; DeleteAction: TAction; PrintFilterAction: TAction; - ToolButton11: TToolButton; PopupMenu: TPopupMenu; Novo1: TMenuItem; Alterar1: TMenuItem; @@ -54,7 +55,6 @@ TosCustomMainForm = class(TosForm) N1: TMenuItem; Visualizar1: TMenuItem; Imprimir1: TMenuItem; - ImprimirFiltro: TMenuItem; N2: TMenuItem; ShowQueryAction: TAction; MostrarQuery: TMenuItem; @@ -78,14 +78,12 @@ TosCustomMainForm = class(TosForm) Panel2: TPanel; Grid: TwwDBGrid; ResourcePanel: TPanel; - ToolButton1: TToolButton; AdvanceAction: TAction; RetrocedeAction: TAction; ActionDataSet: TosClientDataset; OnSelectResourceAction: TAction; ActionDataSetNOMECOMPONENTE: TStringField; WebBrowser: TWebBrowser; - ToolButton4: TToolButton; PaginaInicialToolButton: TToolButton; Exibir: TMenuItem; ExibirPaginaInicial: TMenuItem; @@ -127,7 +125,6 @@ TosCustomMainForm = class(TosForm) EfetuarBackupemarquivolocal1: TMenuItem; SaveBackupDialog: TSaveDialog; FFilterDepot: TacFilterController; - TreeView1: TTreeView; pnlPreviewBar: TPanel; spbPreviewPrint: TSpeedButton; spbPreviewWhole: TSpeedButton; @@ -141,6 +138,11 @@ TosCustomMainForm = class(TosForm) mskPreviewPercentage: TMaskEdit; spbPreviewCancel: TSpeedButton; FReportDepot: TacReportContainer; + Panel1: TPanel; + TreeView1: TTreeView; + EdtPesquisa: TEdit; + Splitter1: TSplitter; + PrintAllToolButton: TW7ToolButton; procedure EditActionExecute(Sender: TObject); procedure ViewActionExecute(Sender: TObject); procedure NewActionExecute(Sender: TObject); @@ -188,20 +190,23 @@ TosCustomMainForm = class(TosForm) procedure EfetuarBackupemarquivolocal1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure TreeView1Change(Sender: TObject; Node: TTreeNode); - procedure TreeView1AdvancedCustomDrawItem(Sender: TCustomTreeView; - Node: TTreeNode; State: TCustomDrawState; Stage: TCustomDrawStage; - var PaintImages, DefaultDraw: Boolean); procedure GridCalcCellColors(Sender: TObject; Field: TField; State: TGridDrawState; Highlight: Boolean; AFont: TFont; ABrush: TBrush); + procedure EdtPesquisaChange(Sender: TObject); + procedure TreeView1CustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState; + var DefaultDraw: Boolean); + procedure EdtPesquisaKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure EdtPesquisaEnter(Sender: TObject); private FNewFilter: boolean; FUserName: string; + FUserDataSenha: TDateTime; + FUserSenha: string; FEditForm: TosCustomEditForm; FActionDblClick: TAction; FSelectedList: TStringListExt; FSelectionField: TField; - lastValidSentence: string; // Field que está sendo usado para ordenação SortField: TField; @@ -220,7 +225,9 @@ TosCustomMainForm = class(TosForm) // e ignorar o caractere se desejado CtrlOrAltPressed: boolean; FSuperUserLogged: boolean; - + FIndiceMenu : Integer; + FUltimoIndiceMenu : Integer; + FOnEditForm: TOnEditForm; procedure SetEditForm(const Value: TosCustomEditForm); procedure SetActionDblClick(const Value: TAction); function GetSelectedList: TStringList; @@ -233,7 +240,7 @@ TosCustomMainForm = class(TosForm) procedure checkOperations; procedure adjustReportZoom; - procedure SetNodeState(node: TTreeNode; Flags: Integer); + procedure SetOnEditForm(const Value: TOnEditForm); protected FCurrentTemplate: TMemoryStream; FCurrentResource: TosAppResource; @@ -260,13 +267,17 @@ TosCustomMainForm = class(TosForm) constructor Create(AOwner: TComponent); override; destructor Destroy; override; property UserName: string read FUserName; + property UserDataSenha: TDateTime read FUserDataSenha; + property UserSenha: String read FUserSenha; property ActionDblClick: TAction read FActionDblClick write SetActionDblClick; procedure ExecLastFilter; function getReportByResource(name: string; stream: TMemoryStream): boolean; + procedure PesquisaMenu(pOrigem: Integer; pIndice : Integer); published property EditForm: TosCustomEditForm read FEditForm write SetEditForm; property SelectedList: TStringList read GetSelectedList; property CurrentResource: TosAppResource read FCurrentResource; + property OnEditForm : TOnEditForm read FOnEditForm write SetOnEditForm; end; var @@ -275,7 +286,8 @@ TosCustomMainForm = class(TosForm) implementation uses acCustomSQLMainDataUn, FilterDefEditFormUn, RecursoDataUn, - osReportUtils, UtilsUnit, Types; + osReportUtils, UtilsUnit, Types, TerminalConsultaFormUn, UMensagemAguarde, StatusUnit, + ParametroSistemaDataUn, LogDataUn, acSysUtils, acStrUtils; {$R *.DFM} @@ -288,9 +300,9 @@ constructor TosCustomMainForm.Create(AOwner: TComponent); sName : string; i : integer; qry: TosSQLQuery; - vViews: variant; begin inherited; + FIndiceMenu := 0; FNewFilter := true; FActionDblClick := EditAction; FSelectedList := TStringListExt.Create; @@ -308,48 +320,49 @@ constructor TosCustomMainForm.Create(AOwner: TComponent); Width := 0; Height := 0; Application.Terminate; + Application.ProcessMessages; end; - Grid.Align := alClient; - RelatPanel.Align := alClient; -//preparar a abertura dos reports -//verificar se vale a pena manter uma SQLConnection só para os relatórios - SQLConnection.Close; - with TStringList.Create do + if (not Application.Terminated) then begin - try - LoadFromFile('AppParams.ini'); - for i := 0 to Count - 1 do - begin - sName := Names[i]; - SQLConnection.Params.Values[sName] := Values[sName]; + Grid.Align := alClient; + RelatPanel.Align := alClient; + + //preparar a abertura dos reports + //verificar se vale a pena manter uma SQLConnection só para os relatórios + SQLConnection.Close; + with TStringList.Create do + begin + try + LoadFromFile('AppParams.ini'); + for i := 0 to Count - 1 do + begin + sName := Names[i]; + SQLConnection.Params.Values[sName] := Values[sName]; + if UpperCase(sName) = 'PASSWORD' then + if Copy(Values[sName], Values[sName].Length - 1, 2) = '==' then + SQLConnection.Params.Values[sName] := simpleDecrypt(Copy(Values[sName], 1, Values[sName].Length - 1)); + end; + if SQLConnection.Params.Values['DataBaseMeta']<>'' then + SQLConnection.Params.Values['Database'] := SQLConnection.Params.Values['DatabaseMeta']; + finally + Free; end; - if SQLConnection.Params.Values['DataBaseMeta']<>'' then - SQLConnection.Params.Values['Database'] := - SQLConnection.Params.Values['DatabaseMeta']; - finally - Free; end; - end; - //TTMCI - //para buscar os metadados dos filtros usar o SQLConnection de metadados - acCustomSQLMainData.FilterQuery.SQLConnection := acCustomSQLMainData.SQLConnectionMeta; - qry := acCustomSQLMainData.GetQuery; - try - qry.SQLConnection := acCustomSQLMainData.SQLConnectionMeta; - qry.SQL.Text := 'SELECT NAME FROM XFILTERDEF'; - qry.Open; - qry.First; - //while not qry.Eof do - //begin - //vViews := FilterDataset.DataRequest('_CMD=GET_VIEWS UID= CLASSNAME=' + qry.FieldByName('NAME').AsString); - //FFilterDepot.addFilter(qry.FieldByName('NAME').AsString, vViews); - //qry.Next; - //end; - finally - FreeAndNil(qry); - acCustomSQLMainData.FilterQuery.SQLConnection := acCustomSQLMainData.SQLConnection; + //TTMCI + //para buscar os metadados dos filtros usar o SQLConnection de metadados + acCustomSQLMainData.FilterQuery.SQLConnection := acCustomSQLMainData.SQLConnectionMeta; + qry := acCustomSQLMainData.GetQuery; + try + qry.SQLConnection := acCustomSQLMainData.SQLConnectionMeta; + qry.SQL.Text := 'SELECT NAME FROM XFILTERDEF'; + qry.Open; + qry.First; + finally + FreeAndNil(qry); + acCustomSQLMainData.FilterQuery.SQLConnection := acCustomSQLMainData.SQLConnection; + end; end; end; @@ -368,6 +381,10 @@ procedure TosCustomMainForm.EditActionExecute(Sender: TObject); Form.VisibleButtons := [vbSalvarFechar, vbFechar]; if PrintAction.Enabled then Form.VisibleButtons := Form.VisibleButtons + [vbImprimir]; + if assigned(Self.FOnEditForm) then + Self.FOnEditForm(Form); + + TParametroSistemaData.RegistrarUsoRecurso(FCurrentResource.Name, rrEdit); Form.Edit('ID', iID); if Form.IsModified then begin @@ -405,6 +422,7 @@ procedure TosCustomMainForm.NewActionExecute(Sender: TObject); begin Form := FCurrentEditForm; Form.VisibleButtons := [vbSalvarFechar]; + TParametroSistemaData.RegistrarUsoRecurso(FCurrentResource.Name, rrInsert); if PrintAction.Enabled then Form.VisibleButtons := Form.VisibleButtons + [vbImprimir]; Form.Insert; @@ -418,9 +436,13 @@ procedure TosCustomMainForm.DeleteActionExecute(Sender: TObject); begin inherited; Form := FCurrentEditForm; - Form.VisibleButtons := [vbExcluir, vbFechar]; - if Form.Delete('ID', FIdField.AsInteger) then - ExecLastFilter; + if Form <> nil then + begin + TParametroSistemaData.RegistrarUsoRecurso(FCurrentResource.Name, rrDelete); + Form.VisibleButtons := [vbExcluir, vbFechar]; + if Form.Delete('ID', FIdField.AsInteger) then + ExecLastFilter; + end; end; procedure TosCustomMainForm.FilterDatasetAfterOpen(DataSet: TDataSet); @@ -498,8 +520,7 @@ procedure TosCustomMainForm.CheckActionsExecute(Sender: TObject); ComponentNotFound := False; ComponentIsNotAction := False; - if FilterDataset.active then - DataSetIsEmpty := FilterDataset.RecordCount = 0; + DataSetIsEmpty := (FilterDataset.active) and (FilterDataset.RecordCount = 0); ActionDataSet.Open; @@ -531,6 +552,14 @@ procedure TosCustomMainForm.CheckActionsExecute(Sender: TObject); if ComponentNotFound or ComponentIsNotAction then raise Exception.Create(ExceptionMsg + 'Contate o administrador.'); checkOperations; + + if FCurrentResource.ResType = rtEdit then + begin + if EditAction.Enabled then + FActionDblClick := EditAction + else if ViewAction.Enabled then + FActionDblClick := ViewAction; + end; end; procedure TosCustomMainForm.FilterActionExecute(Sender: TObject); @@ -556,9 +585,9 @@ procedure TosCustomMainForm.FilterActionExecute(Sender: TObject); ConsultaCombo.ConfigFields(ConsultaCombo.ItemIndex); end; end; - FIDField := FilterDataset.Fields.FindField('ID'); CheckMultiSelection; + finally Screen.Cursor := crDefault; end; @@ -619,31 +648,6 @@ function TosCustomMainForm.GetSelectedList: TStringList; EnableControls; { Re-enable controls } end; - - - { - - FSelectedList.Clear; - if Grid.SelectedRows.Count > 0 then - begin - with FilterDataset do - begin - bm := FilterDataset.GetBookmark; - try - DisableControls; - for i:=0 to Grid.SelectedRows.Count-1 do - begin - GotoBookmark(pointer(Grid.SelectedRows.Items[i])); - FSelectedList.Add(FIDField.AsString); - end; - finally - GotoBookmark(bm); - FreeBookmark(bm); - EnableControls; - end; - end; - end; - } Result := FSelectedList; end; @@ -796,6 +800,8 @@ procedure TosCustomMainForm.ResourceClick(Sender: TObject); CheckActionsExecute(self); if FCurrentForm is TosCustomEditForm then (FCurrentForm as TosCustomEditForm).VisibleButtons := [vbSalvarFechar]; + + TParametroSistemaData.RegistrarUsoRecurso(FCurrentResource.Name, rrOutro); FCurrentForm.ShowModal; finally Screen.Cursor := crDefault; @@ -810,6 +816,11 @@ procedure TosCustomMainForm.SetEditForm(const Value: TosCustomEditForm); end; +procedure TosCustomMainForm.SetOnEditForm(const Value: TOnEditForm); +begin + FOnEditForm := Value; +end; + function TosCustomMainForm.CreateCurrentEditForm: TosCustomEditForm; begin if (Assigned(FCurrentResource)) and @@ -841,19 +852,55 @@ procedure TosCustomMainForm.CloseActionExecute(Sender: TObject); procedure TosCustomMainForm.PrintActionExecute(Sender: TObject); var Report : TacCustomReport; + FrmMensagem : TFrmMensagemAguarde; begin inherited; // Because the report is not often printed, the object can be created on the // fly - Report := CreateCurrentReport; - if Assigned (Report) then + if TAction(Sender).ActionComponent = PrintAllToolButton then + begin + FrmMensagem := TFrmMensagemAguarde.Create(Application); try - Report.Print (FIDField.AsInteger); + FrmMensagem.Show; + FilterDataset.First; + while not FilterDataset.Eof do + begin + FrmMensagem.setMensagem('Imprimindo... ' + IntToStr(FilterDataset.RecNo) + ' / ' + IntToStr(FilterDataset.RecordCount), True); + FrmMensagem.Update; + Report := CreateCurrentReport; + if Assigned (Report) then + try + Report.RecursoOrigem := CurrentResource.Name; + Report.forcePrintWithoutDialog := True; + Report.Print (FIDField.AsInteger); + finally + Report.Free; + end + else + begin + Assert(False, 'The report wasn''t created'); + break; + end; + + FilterDataset.Next; + end; finally - Report.Free; - end + FreeAndNil(FrmMensagem); + end; + end else - Assert(False, 'The report wasn''t created'); + begin + Report := CreateCurrentReport; + if Assigned (Report) then + try + Report.RecursoOrigem := CurrentResource.Name; + Report.Print (FIDField.AsInteger); + finally + Report.Free; + end + else + Assert(False, 'The report wasn''t created'); + end; end; function TosCustomMainForm.CreateCurrentReport: TacCustomReport; @@ -978,6 +1025,32 @@ procedure TosCustomMainForm.PaginaInicial(Sender: TObject); ShowHomePage(true); end; +procedure TosCustomMainForm.PesquisaMenu(pOrigem: Integer; pIndice : Integer); +var + i,vTamanho: integer; + vNo: ttreenode; +begin + vTamanho := length(EdtPesquisa.text); + if vTamanho > 2 then + begin + for i := pIndice to TreeView1.Items.Count-1 do + begin + if Pos(UpperCase(EdtPesquisa.text), UpperCase(TreeView1.Items[i].Text)) > 0 then + begin + vNo := TreeView1.Items[i]; + TreeView1.Select(vNo); + if pOrigem = 0 then + break + else + begin + FIndiceMenu := i ; + pOrigem := 0; + end; + end; + end; + end; +end; + procedure TosCustomMainForm.GridCalcTitleImage(Sender: TObject; Field: TField; var TitleImageAttributes: TwwTitleImageAttributes); begin @@ -1079,7 +1152,6 @@ function TosCustomMainForm.Login: boolean; cds: TosClientDataSet; ErrorCount: integer; LoginCorrect: boolean; - vViews: variant; begin FUserName := GetSystemUserName; @@ -1113,6 +1185,8 @@ function TosCustomMainForm.Login: boolean; begin FSuperUserLogged := true; LoginCorrect := True; + if LogData <> nil then + LogData.ClasseClientDataset.Filtered := False; Break; end; end; @@ -1144,7 +1218,11 @@ function TosCustomMainForm.Login: boolean; Inc(ErrorCount); end else + begin LoginCorrect := True; + FUserDataSenha := cdsUsuario.FieldByName('DataSenha').AsDateTime; + FUserSenha := cdsUsuario.FieldByName('Senha').AsString; + end; finally cdsUsuario.Close; end; @@ -1161,6 +1239,9 @@ function TosCustomMainForm.Login: boolean; acCustomSQLMainData.GetUserInfo(FUserName); + if LogData <> nil then + LogData.setUsuarioLogado(acCustomSQLMainData.IDUsuario); + StatusBar.Panels[1].Text := FUsername; cds.Params.Clear; if FUserName=FSuperUserName then @@ -1215,8 +1296,6 @@ function TosCustomMainForm.Login: boolean; end; procedure TosCustomMainForm.Logout; -var - i: integer; begin FilterDataSet.Close; @@ -1262,6 +1341,7 @@ procedure TosCustomMainForm.LoadTreeView; noPai, no: TTreeNode; begin sDomain := ''; + noPai := nil; for i:=0 to Manager.Resources.Count - 1 do begin with Manager.Resources[i] do @@ -1271,11 +1351,11 @@ procedure TosCustomMainForm.LoadTreeView; sDomain := DomainName; noPai := TreeView1.Items.Add(nil, sDomain); end; + // Cria o botão no := TreeView1.Items.AddChild(noPai, name); no.ImageIndex := ImageIndex; no.SelectedIndex := Manager.Resources[i].ID; - SetNodeState(no, TVIS_BOLD) end; end; end; @@ -1521,6 +1601,7 @@ procedure TosCustomMainForm.checkOperations; begin NewAction.Enabled := NewAction.Enabled AND (oInserir in osForm.Operacoes); EditAction.Enabled := EditAction.Enabled AND (oEditar in osForm.Operacoes); + EditarTodosButton.Enabled := EditAction.Enabled; DeleteAction.Enabled := DeleteAction.Enabled AND (oExcluir in osForm.Operacoes); ViewAction.Enabled := ViewAction.Enabled AND (oVisualizar in osForm.Operacoes); PrintAction.Enabled := PrintAction.Enabled AND ((oImprimir in osForm.Operacoes) or ((FCurrentResource.ReportClassName <> ''))); @@ -1531,6 +1612,7 @@ procedure TosCustomMainForm.ControlActions(enabled: boolean); begin NewAction.Enabled := enabled; EditAction.Enabled := enabled; + EditarTodosButton.Enabled := enabled; DeleteAction.Enabled := enabled; ViewAction.Enabled := enabled; PrintAction.Enabled := enabled; @@ -1577,6 +1659,9 @@ procedure TosCustomMainForm.EditarTodosButtonClick(Sender: TObject); Form.VisibleButtons := [vbSalvarFechar, vbParar]; if PrintAction.Enabled then Form.VisibleButtons := Form.VisibleButtons + [vbImprimir]; + if assigned(Self.FOnEditForm) then + Self.FOnEditForm(Form); + TParametroSistemaData.RegistrarUsoRecurso(FCurrentResource.Name, rrEdit); Form.Edit('ID', iID); if Form.IsModified then begin @@ -1593,6 +1678,76 @@ procedure TosCustomMainForm.EditarTodosButtonClick(Sender: TObject); end; +procedure TosCustomMainForm.EdtPesquisaChange(Sender: TObject); +begin + inherited; + FIndiceMenu := 0; + Self.PesquisaMenu(0,FIndiceMenu); +end; + +procedure TosCustomMainForm.EdtPesquisaEnter(Sender: TObject); +begin + inherited; + self.OnKeyDown := nil; +end; + +procedure TosCustomMainForm.EdtPesquisaKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); +var + vNo : TTreeNode; + TerminalConsultaForm : TTerminalConsultaEditForm; +begin + inherited; + if key = vk_return then + begin + if isNumeric(EdtPesquisa.Text, False) then + begin + try + TerminalConsultaForm := TTerminalConsultaEditForm.Create(self); + TerminalConsultaForm.pDigitacao := EdtPesquisa.Text; + TerminalConsultaForm.ShowModal; + except + FreeAndNil(TerminalConsultaForm); + end; + end + else if (FUltimoIndiceMenu > 0) and (FIndiceMenu = FUltimoIndiceMenu) then + begin + FIndiceMenu := 0; + Self.PesquisaMenu(0,FIndiceMenu); + end + else + begin + FUltimoIndiceMenu := FIndiceMenu; + Self.PesquisaMenu(1,FIndiceMenu+1); + end; + end + else + if (key = VK_DOWN) or (key = VK_UP) or (key = VK_RIGHT) then + begin + if KEY = VK_DOWN then + BEGIN + if (TreeView1.Items.Count-1) > FIndiceMenu then + begin + vNo := TreeView1.Items[FIndiceMenu+1]; + TreeView1.Select(vNo); + inc(FIndiceMenu); + end; + END + else if KEY = VK_UP then + begin + if FIndiceMenu > 0 then + begin + vNo := TreeView1.Items[FIndiceMenu-1]; + TreeView1.Select(vNo); + dec(FIndiceMenu); + end; + end + else if KEY = VK_RIGHT then + begin + Self.TreeView1Change(Self, TreeView1.Items[FIndiceMenu]); + end; + end; +end; + procedure TosCustomMainForm.EfetuarBackupemarquivolocal1Click( Sender: TObject); var @@ -1644,7 +1799,8 @@ procedure TosCustomMainForm.TreeView1Change(Sender: TObject; FCurrentResource := NewResource; Manager.currentResource := FCurrentResource; // Libera o datamodule associado - FCurrentDatamodule.Free; + if FCurrentDatamodule<>Nil then + FCurrentDatamodule.Free; FCurrentDatamodule := CreateCurrentDatamodule; // Libera o form corrente @@ -1653,6 +1809,8 @@ procedure TosCustomMainForm.TreeView1Change(Sender: TObject; if Assigned(FCurrentForm) then FreeAndNil(FCurrentForm); + OnSelectResourceAction.Execute; + // Limpa o Template corrente FCurrentTemplate.Clear; @@ -1662,7 +1820,10 @@ procedure TosCustomMainForm.TreeView1Change(Sender: TObject; end else if FCurrentResource.ResType = rtEdit then begin - FActionDblClick := EditAction; + if EditAction.Enabled then + FActionDblClick := EditAction + else if ViewAction.Enabled then + FActionDblClick := ViewAction; FCurrentEditForm := CreateCurrentEditForm; if Assigned(FCurrentEditForm) and Assigned(FCurrentDatamodule) then FCurrentEditForm.Datamodule := FCurrentDatamodule; @@ -1670,7 +1831,7 @@ procedure TosCustomMainForm.TreeView1Change(Sender: TObject; else if FCurrentResource.ResType = rtOther then FCurrentForm := CreateCurrentForm; - OnSelectResourceAction.Execute; + end; if FCurrentResource.ResType = rtOther then @@ -1680,6 +1841,8 @@ procedure TosCustomMainForm.TreeView1Change(Sender: TObject; CheckActionsExecute(self); if FCurrentForm is TosCustomEditForm then (FCurrentForm as TosCustomEditForm).VisibleButtons := [vbSalvarFechar]; + + TParametroSistemaData.RegistrarUsoRecurso(FCurrentResource.Name, rrEdit); FCurrentForm.ShowModal; finally Screen.Cursor := crDefault; @@ -1689,36 +1852,30 @@ procedure TosCustomMainForm.TreeView1Change(Sender: TObject; PrintAction.Enabled := (FCurrentResource.ReportClassName <> ''); end; -procedure TosCustomMainForm.SetNodeState(node: TTreeNode; Flags: Integer); -var tvi: TTVItemEx; +procedure TosCustomMainForm.TreeView1CustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode; + State: TCustomDrawState; var DefaultDraw: Boolean); begin -{ FillChar(tvi, SizeOf(tvi), 0); - tvi.hItem := node.ItemID; - tvi.Mask := TVIF_STATE; - tvi.StateMask := TVIS_BOLD or TVIS_CUT; - tvi.State := Flags; - TreeView_SetItemA(node.Handle, tvi); -{ if node.Text = 'Orçamento' then - TreeView_SetItemHeight(node.Handle, 30) + inherited; + + if Node.Selected then + begin + Sender.Canvas.Brush.Color := clInfoBk; + Sender.Canvas.Font.Color := clBlack; + end else - TreeView_SetItemHeight(node.Handle, 15);} + begin + Sender.Canvas.Brush.Color := TTreeView(Sender).Color; + Sender.Canvas.Font.Color := TTreeView(Sender).Font.Color; + end; + end; -procedure TosCustomMainForm.TreeView1AdvancedCustomDrawItem( - Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState; - Stage: TCustomDrawStage; var PaintImages, DefaultDraw: Boolean); -begin - inherited; - // TODO: ver depois - // Node.DisplayRect(true).Height := 10; -end; procedure TosCustomMainForm.GridCalcCellColors(Sender: TObject; Field: TField; State: TGridDrawState; Highlight: Boolean; AFont: TFont; ABrush: TBrush); var - dummy: integer; id: integer; begin inherited; diff --git a/Forms/osCustomMainFrm.vlb b/Forms/osCustomMainFrm.vlb new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/Forms/osCustomMainFrm.vlb @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Forms/osFrm.pas b/Forms/osFrm.pas index 542c919..31d4286 100644 --- a/Forms/osFrm.pas +++ b/Forms/osFrm.pas @@ -4,12 +4,15 @@ interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, - ActnList, osUtils, ImgList, osActionList, System.Actions; + ActnList, osUtils, ImgList, osActionList, System.Generics.Collections, System.Actions {$IFDEF VER320} , System.ImageList {$ENDIF}; type TOperacao = (oInserir, oEditar, oExcluir, oVisualizar, oImprimir); TOperacoes = set of TOperacao; + TWhiteList = class(TObjectList) + end; + TosForm = class(TForm) ActionList: TosActionList; OnCheckActionsAction: TAction; @@ -20,8 +23,14 @@ TosForm = class(TForm) FOperacoes: TOperacoes; procedure SetOperacoes(const Value: TOperacoes); protected + FWhiteList: TWhiteList; + procedure DisableWinControlComponents(aWinControl: TWinControl); + procedure EnableWinControlComponents(aWinControl: TWinControl); + procedure AddControlsToWhiteListByContainer(aContainer: TWinControl); + function GetWhiteList: TWhiteList; public constructor Create(AOwner: TComponent); override; + destructor Destroy; override; published property Operacoes: TOperacoes read FOperacoes write SetOperacoes; end; @@ -31,6 +40,8 @@ TosForm = class(TForm) implementation +uses TypInfo, Vcl.ComCtrls, Vcl.Menus; + {$R *.DFM} { TBizForm } @@ -42,6 +53,11 @@ constructor TosForm.Create(AOwner: TComponent); //CheckDefaultParams; // Carrega os parâmetros empresa/estabelecimento se necessário end; +destructor TosForm.Destroy; +begin + FreeAndNil(FWhiteList); + inherited; +end; procedure TosForm.FormShow(Sender: TObject); begin @@ -59,4 +75,64 @@ procedure TosForm.FormCreate(Sender: TObject); Operacoes := [oInserir, oEditar, oExcluir, oVisualizar]; // operações Defaults end; +procedure TosForm.DisableWinControlComponents(aWinControl: TWinControl); +var + i: integer; + infoEnabled: PPropInfo; +begin + for i:= 0 to aWinControl.ComponentCount - 1 do + if (aWinControl.Components[i] is TPageControl) then + Self.DisableWinControlComponents(TPageControl(aWinControl.Components[i])) + else + begin + if (not self.GetWhiteList.Contains(aWinControl.Components[i])) and + ((aWinControl.Components[i] is TPopupMenu) or (aWinControl.Components[i] is TMenuItem) or (aWinControl.Components[i] is TWinControl)) then + begin + infoEnabled := TypInfo.GetPropInfo(aWinControl.Components[i], 'Enabled'); + if assigned(infoEnabled) then + TypInfo.SetPropValue(aWinControl.Components[i], 'Enabled', False); + end; + end; +end; + +procedure TosForm.EnableWinControlComponents(aWinControl: TWinControl); +var + i: integer; + infoEnabled: PPropInfo; +begin + for i:= 0 to aWinControl.ComponentCount - 1 do + begin + infoEnabled := TypInfo.GetPropInfo(aWinControl.Components[i], 'Enabled'); + if assigned(infoEnabled) then + TypInfo.SetPropValue(aWinControl.Components[i], 'Enabled', True); + if aWinControl.Components[i] is TWinControl then + EnableWinControlComponents(TWinControl(aWinControl.Components[i])); + end; +end; + +function TosForm.GetWhiteList: TWhiteList; +begin + if FWhiteList = nil then + begin + FWhiteList := TWhiteList.Create; + FWhiteList.OwnsObjects := False; + end; + Result := FWhiteList; +end; + +procedure TosForm.AddControlsToWhiteListByContainer(aContainer: TWinControl); +var + i: integer; +begin + Self.GetWhiteList.Add(aContainer); + for i:= 0 to aContainer.ComponentCount - 1 do + begin + Self.GetWhiteList.Add(aContainer.Components[i]); + if (aContainer.Components[i] is TWinControl) then + AddControlsToWhiteListByContainer(TWinControl(aContainer.Components[i])); + end; +end; + + + end. diff --git a/Forms/osWizFrm.dfm b/Forms/osWizFrm.dfm index c47c08e..3485149 100644 --- a/Forms/osWizFrm.dfm +++ b/Forms/osWizFrm.dfm @@ -37,6 +37,7 @@ object osWizForm: TosWizForm Style = tsFlatButtons TabHeight = 1 TabOrder = 1 + OnChanging = pgcWizardChanging object TabSheet1: TTabSheet Caption = 'TabSheet1' DesignSize = ( diff --git a/Forms/osWizFrm.pas b/Forms/osWizFrm.pas index 1cbd043..552c01b 100644 --- a/Forms/osWizFrm.pas +++ b/Forms/osWizFrm.pas @@ -5,7 +5,7 @@ interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, osUtils, ActnList, osActionList, osFrm, - System.Actions; + System.Actions, System.UITypes; type TosWizForm = class(TosForm) @@ -32,10 +32,11 @@ TosWizForm = class(TosForm) procedure btnAvancarClick(Sender: TObject); procedure btnCancelarClick(Sender: TObject); procedure FormShow(Sender: TObject); + procedure pgcWizardChanging(Sender: TObject; var AllowChange: Boolean); private - FShowLogPage: boolean; FMovingForward: boolean; FCompleteAction: boolean; + FMudarTela: Boolean; function GetIndexLastPage: integer; protected procedure UpdatePage; virtual; @@ -50,9 +51,9 @@ TosWizForm = class(TosForm) function PageCount : integer; procedure Log(const PMessage: string; const Args: array of const; const PTime: boolean = True); property IndexLastPage: integer read GetIndexLastPage; - property ShowLogPage: boolean read FShowLogPage write FShowLogPage; property MovingForward: boolean read FMovingForward; property CompleteAction: boolean read FCompleteAction write FCompleteAction; + property MudarTela: boolean read FMudarTela write FMudarTela; end; const @@ -89,6 +90,7 @@ procedure TosWizForm.UpdatePage; procedure TosWizForm.btnVoltarClick(Sender: TObject); begin inherited; + FMudarTela := True; CompleteAction := True; FMovingForward := False; OnLeavePage.Execute; @@ -99,6 +101,7 @@ procedure TosWizForm.btnVoltarClick(Sender: TObject); procedure TosWizForm.btnAvancarClick(Sender: TObject); begin inherited; + FMudarTela := True; CompleteAction := True; FMovingForward := True; OnLeavePage.Execute; @@ -106,23 +109,20 @@ procedure TosWizForm.btnAvancarClick(Sender: TObject); begin if btnAvancar.Caption = constConcluirCaption then begin - pgcWizard.Visible := False; - try - btnVoltar.Enabled := False; - NextPage; - UpdatePage; - btnAvancar.Enabled := False; - btnCancelar.Caption := constFecharCaption; - btnCancelar.Enabled := False; - WizardConclusion; - except - pgcWizard.Visible := True; - raise; - end; - if FShowLogPage then - btnCancelar.Enabled := True - else - Close; + pgcWizard.Visible := False; + try + btnVoltar.Enabled := False; + NextPage; + UpdatePage; + btnAvancar.Enabled := False; + btnCancelar.Caption := constFecharCaption; + btnCancelar.Enabled := False; + WizardConclusion; + except + pgcWizard.Visible := True; + raise; + end; + Close; end else NextPage; @@ -137,7 +137,7 @@ procedure TosWizForm.btnCancelarClick(Sender: TObject); ModalResult := mrOK; Close; end - else if Application.MessageBox(PChar('Cancelar o ' + Caption + '?') , 'Cancelar', MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON2) = IDYES then + else if MessageDlg(PChar('Cancelar o ' + Caption + '?'), mtConfirmation, mbYesNo, 0) = mrYes then begin ModalResult := mrCancel; Close; @@ -211,7 +211,7 @@ function TosWizForm.GetIndexLastPage: integer; procedure TosWizForm.FormShow(Sender: TObject); begin - ShowLogPage := True; + FMudarTela := False; btnAvancar.Enabled := True; btnCancelar.Caption := constCancelarCaption; btnCancelar.Enabled := True; @@ -235,5 +235,12 @@ procedure TosWizForm.Log(const PMessage: string; Application.ProcessMessages; end; +procedure TosWizForm.pgcWizardChanging(Sender: TObject; var AllowChange: Boolean); +begin + if not FMudarTela then + AllowChange := False; + FMudarTela := False; +end; + end. diff --git a/Lib/MSXML2_TLB.pas b/Lib/MSXML2_TLB.pas new file mode 100644 index 0000000..91485d8 --- /dev/null +++ b/Lib/MSXML2_TLB.pas @@ -0,0 +1,5105 @@ +unit MSXML2_TLB; + +// ************************************************************************ // +// WARNING +// ------- +// The types declared in this file were generated from data read from a +// Type Library. If this type library is explicitly or indirectly (via +// another type library referring to this type library) re-imported, or the +// 'Refresh' command of the Type Library Editor activated while editing the +// Type Library, the contents of this file will be regenerated and all +// manual modifications will be lost. +// ************************************************************************ // + +// PASTLWTR : 1.2 +// File generated on 30/07/2009 12:13:34 from Type Library described below. + +// ************************************************************************ // +// Type Lib: C:\Windows\System32\msxml6.dll (1) +// LIBID: {F5078F18-C551-11D3-89B9-0000F81FE221} +// LCID: 0 +// Helpfile: +// HelpString: Microsoft XML, v6.0 +// DepndLst: +// (1) v2.0 stdole, (C:\Windows\system32\stdole2.tlb) +// Errors: +// Hint: Parameter 'type' of IXMLDOMNode.nodeType changed to 'type_' +// Hint: Member 'implementation' of 'IXMLDOMDocument' changed to 'implementation_' +// Hint: Parameter 'type' of IXMLDOMDocument.createNode changed to 'type_' +// Hint: Parameter 'var' of IXMLDOMSchemaCollection.add changed to 'var_' +// Hint: Symbol 'type' renamed to 'type_' +// Hint: Parameter 'type' of ISchemaElement.type changed to 'type_' +// Hint: Symbol 'type' renamed to 'type_' +// Hint: Parameter 'type' of ISchemaAttribute.type changed to 'type_' +// ************************************************************************ // +{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers. +{$WARN SYMBOL_PLATFORM OFF} +{$WRITEABLECONST ON} +{$VARPROPSETTER ON} +interface + +uses Windows, ActiveX, Classes, StdVCL, Variants; + + +// *********************************************************************// +// GUIDS declared in the TypeLibrary. Following prefixes are used: +// Type Libraries : LIBID_xxxx +// CoClasses : CLASS_xxxx +// DISPInterfaces : DIID_xxxx +// Non-DISP interfaces: IID_xxxx +// *********************************************************************// +const + // TypeLibrary Major and minor versions + MSXML2MajorVersion = 6; + MSXML2MinorVersion = 0; + + LIBID_MSXML2: TGUID = '{F5078F18-C551-11D3-89B9-0000F81FE221}'; + + IID_IXMLDOMImplementation: TGUID = '{2933BF8F-7B36-11D2-B20E-00C04F983E60}'; + IID_IXMLDOMNode: TGUID = '{2933BF80-7B36-11D2-B20E-00C04F983E60}'; + IID_IXMLDOMNodeList: TGUID = '{2933BF82-7B36-11D2-B20E-00C04F983E60}'; + IID_IXMLDOMNamedNodeMap: TGUID = '{2933BF83-7B36-11D2-B20E-00C04F983E60}'; + IID_IXMLDOMDocument: TGUID = '{2933BF81-7B36-11D2-B20E-00C04F983E60}'; + IID_IXMLDOMDocumentType: TGUID = '{2933BF8B-7B36-11D2-B20E-00C04F983E60}'; + IID_IXMLDOMElement: TGUID = '{2933BF86-7B36-11D2-B20E-00C04F983E60}'; + IID_IXMLDOMAttribute: TGUID = '{2933BF85-7B36-11D2-B20E-00C04F983E60}'; + IID_IXMLDOMDocumentFragment: TGUID = '{3EFAA413-272F-11D2-836F-0000F87A7782}'; + IID_IXMLDOMCharacterData: TGUID = '{2933BF84-7B36-11D2-B20E-00C04F983E60}'; + IID_IXMLDOMText: TGUID = '{2933BF87-7B36-11D2-B20E-00C04F983E60}'; + IID_IXMLDOMComment: TGUID = '{2933BF88-7B36-11D2-B20E-00C04F983E60}'; + IID_IXMLDOMCDATASection: TGUID = '{2933BF8A-7B36-11D2-B20E-00C04F983E60}'; + IID_IXMLDOMProcessingInstruction: TGUID = '{2933BF89-7B36-11D2-B20E-00C04F983E60}'; + IID_IXMLDOMEntityReference: TGUID = '{2933BF8E-7B36-11D2-B20E-00C04F983E60}'; + IID_IXMLDOMParseError: TGUID = '{3EFAA426-272F-11D2-836F-0000F87A7782}'; + IID_IXMLDOMDocument2: TGUID = '{2933BF95-7B36-11D2-B20E-00C04F983E60}'; + IID_IXMLDOMSchemaCollection: TGUID = '{373984C8-B845-449B-91E7-45AC83036ADE}'; + IID_IXMLDOMDocument3: TGUID = '{2933BF96-7B36-11D2-B20E-00C04F983E60}'; + IID_IXMLDOMNotation: TGUID = '{2933BF8C-7B36-11D2-B20E-00C04F983E60}'; + IID_IXMLDOMEntity: TGUID = '{2933BF8D-7B36-11D2-B20E-00C04F983E60}'; + IID_IXMLDOMParseError2: TGUID = '{3EFAA428-272F-11D2-836F-0000F87A7782}'; + IID_IXMLDOMParseErrorCollection: TGUID = '{3EFAA429-272F-11D2-836F-0000F87A7782}'; + IID_IXTLRuntime: TGUID = '{3EFAA425-272F-11D2-836F-0000F87A7782}'; + IID_IXSLTemplate: TGUID = '{2933BF93-7B36-11D2-B20E-00C04F983E60}'; + IID_IXSLProcessor: TGUID = '{2933BF92-7B36-11D2-B20E-00C04F983E60}'; + IID_ISAXXMLReader: TGUID = '{A4F96ED0-F829-476E-81C0-CDC7BD2A0802}'; + IID_ISAXEntityResolver: TGUID = '{99BCA7BD-E8C4-4D5F-A0CF-6D907901FF07}'; + IID_ISAXContentHandler: TGUID = '{1545CDFA-9E4E-4497-A8A4-2BF7D0112C44}'; + IID_ISAXLocator: TGUID = '{9B7E472A-0DE4-4640-BFF3-84D38A051C31}'; + IID_ISAXAttributes: TGUID = '{F078ABE1-45D2-4832-91EA-4466CE2F25C9}'; + IID_ISAXDTDHandler: TGUID = '{E15C1BAF-AFB3-4D60-8C36-19A8C45DEFED}'; + IID_ISAXErrorHandler: TGUID = '{A60511C4-CCF5-479E-98A3-DC8DC545B7D0}'; + IID_ISAXXMLFilter: TGUID = '{70409222-CA09-4475-ACB8-40312FE8D145}'; + IID_ISAXLexicalHandler: TGUID = '{7F85D5F5-47A8-4497-BDA5-84BA04819EA6}'; + IID_ISAXDeclHandler: TGUID = '{862629AC-771A-47B2-8337-4E6843C1BE90}'; + IID_IVBSAXXMLReader: TGUID = '{8C033CAA-6CD6-4F73-B728-4531AF74945F}'; + IID_IVBSAXEntityResolver: TGUID = '{0C05D096-F45B-4ACA-AD1A-AA0BC25518DC}'; + IID_IVBSAXContentHandler: TGUID = '{2ED7290A-4DD5-4B46-BB26-4E4155E77FAA}'; + IID_IVBSAXLocator: TGUID = '{796E7AC5-5AA2-4EFF-ACAD-3FAAF01A3288}'; + IID_IVBSAXAttributes: TGUID = '{10DC0586-132B-4CAC-8BB3-DB00AC8B7EE0}'; + IID_IVBSAXDTDHandler: TGUID = '{24FB3297-302D-4620-BA39-3A732D850558}'; + IID_IVBSAXErrorHandler: TGUID = '{D963D3FE-173C-4862-9095-B92F66995F52}'; + IID_IVBSAXXMLFilter: TGUID = '{1299EB1B-5B88-433E-82DE-82CA75AD4E04}'; + IID_IVBSAXLexicalHandler: TGUID = '{032AAC35-8C0E-4D9D-979F-E3B702935576}'; + IID_IVBSAXDeclHandler: TGUID = '{E8917260-7579-4BE1-B5DD-7AFBFA6F077B}'; + IID_IMXWriter: TGUID = '{4D7FF4BA-1565-4EA8-94E1-6E724A46F98D}'; + IID_IMXAttributes: TGUID = '{F10D27CC-3EC0-415C-8ED8-77AB1C5E7262}'; + IID_IMXReaderControl: TGUID = '{808F4E35-8D5A-4FBE-8466-33A41279ED30}'; + IID_IMXSchemaDeclHandler: TGUID = '{FA4BB38C-FAF9-4CCA-9302-D1DD0FE520DB}'; + IID_ISchemaItem: TGUID = '{50EA08B3-DD1B-4664-9A50-C2F40F4BD79A}'; + IID_ISchemaParticle: TGUID = '{50EA08B5-DD1B-4664-9A50-C2F40F4BD79A}'; + IID_ISchemaElement: TGUID = '{50EA08B7-DD1B-4664-9A50-C2F40F4BD79A}'; + IID_ISchema: TGUID = '{50EA08B4-DD1B-4664-9A50-C2F40F4BD79A}'; + IID_ISchemaItemCollection: TGUID = '{50EA08B2-DD1B-4664-9A50-C2F40F4BD79A}'; + IID_ISchemaStringCollection: TGUID = '{50EA08B1-DD1B-4664-9A50-C2F40F4BD79A}'; + IID_ISchemaType: TGUID = '{50EA08B8-DD1B-4664-9A50-C2F40F4BD79A}'; + IID_ISchemaComplexType: TGUID = '{50EA08B9-DD1B-4664-9A50-C2F40F4BD79A}'; + IID_ISchemaAny: TGUID = '{50EA08BC-DD1B-4664-9A50-C2F40F4BD79A}'; + IID_ISchemaModelGroup: TGUID = '{50EA08BB-DD1B-4664-9A50-C2F40F4BD79A}'; + IID_IMXXMLFilter: TGUID = '{C90352F7-643C-4FBC-BB23-E996EB2D51FD}'; + IID_IXMLDOMSchemaCollection2: TGUID = '{50EA08B0-DD1B-4664-9A50-C2F40F4BD79A}'; + IID_ISchemaAttribute: TGUID = '{50EA08B6-DD1B-4664-9A50-C2F40F4BD79A}'; + IID_ISchemaAttributeGroup: TGUID = '{50EA08BA-DD1B-4664-9A50-C2F40F4BD79A}'; + IID_ISchemaIdentityConstraint: TGUID = '{50EA08BD-DD1B-4664-9A50-C2F40F4BD79A}'; + IID_ISchemaNotation: TGUID = '{50EA08BE-DD1B-4664-9A50-C2F40F4BD79A}'; + IID_IXMLDOMSelection: TGUID = '{AA634FC7-5888-44A7-A257-3A47150D3A0E}'; + DIID_XMLDOMDocumentEvents: TGUID = '{3EFAA427-272F-11D2-836F-0000F87A7782}'; + IID_IDSOControl: TGUID = '{310AFA62-0575-11D2-9CA9-0060B0EC3D39}'; + IID_IXMLHTTPRequest: TGUID = '{ED8C108D-4349-11D2-91A4-00C04F7969E8}'; + IID_IServerXMLHTTPRequest: TGUID = '{2E9196BF-13BA-4DD4-91CA-6C571F281495}'; + IID_IServerXMLHTTPRequest2: TGUID = '{2E01311B-C322-4B0A-BD77-B90CFDC8DCE7}'; + IID_IMXNamespacePrefixes: TGUID = '{C90352F4-643C-4FBC-BB23-E996EB2D51FD}'; + IID_IVBMXNamespaceManager: TGUID = '{C90352F5-643C-4FBC-BB23-E996EB2D51FD}'; + IID_IMXNamespaceManager: TGUID = '{C90352F6-643C-4FBC-BB23-E996EB2D51FD}'; + CLASS_DOMDocument: TGUID = '{F6D90F11-9C73-11D3-B32E-00C04F990BB4}'; + CLASS_DOMDocument26: TGUID = '{F5078F1B-C551-11D3-89B9-0000F81FE221}'; + CLASS_DOMDocument30: TGUID = '{F5078F32-C551-11D3-89B9-0000F81FE221}'; + CLASS_DOMDocument40: TGUID = '{88D969C0-F192-11D4-A65F-0040963251E5}'; + CLASS_DOMDocument60: TGUID = '{88D96A05-F192-11D4-A65F-0040963251E5}'; + CLASS_FreeThreadedDOMDocument: TGUID = '{F6D90F12-9C73-11D3-B32E-00C04F990BB4}'; + CLASS_FreeThreadedDOMDocument26: TGUID = '{F5078F1C-C551-11D3-89B9-0000F81FE221}'; + CLASS_FreeThreadedDOMDocument30: TGUID = '{F5078F33-C551-11D3-89B9-0000F81FE221}'; + CLASS_FreeThreadedDOMDocument40: TGUID = '{88D969C1-F192-11D4-A65F-0040963251E5}'; + CLASS_FreeThreadedDOMDocument60: TGUID = '{88D96A06-F192-11D4-A65F-0040963251E5}'; + CLASS_XMLSchemaCache: TGUID = '{373984C9-B845-449B-91E7-45AC83036ADE}'; + CLASS_XMLSchemaCache26: TGUID = '{F5078F1D-C551-11D3-89B9-0000F81FE221}'; + CLASS_XMLSchemaCache30: TGUID = '{F5078F34-C551-11D3-89B9-0000F81FE221}'; + CLASS_XMLSchemaCache40: TGUID = '{88D969C2-F192-11D4-A65F-0040963251E5}'; + CLASS_XMLSchemaCache60: TGUID = '{88D96A07-F192-11D4-A65F-0040963251E5}'; + CLASS_XSLTemplate: TGUID = '{2933BF94-7B36-11D2-B20E-00C04F983E60}'; + CLASS_XSLTemplate26: TGUID = '{F5078F21-C551-11D3-89B9-0000F81FE221}'; + CLASS_XSLTemplate30: TGUID = '{F5078F36-C551-11D3-89B9-0000F81FE221}'; + CLASS_XSLTemplate40: TGUID = '{88D969C3-F192-11D4-A65F-0040963251E5}'; + CLASS_XSLTemplate60: TGUID = '{88D96A08-F192-11D4-A65F-0040963251E5}'; + CLASS_DSOControl: TGUID = '{F6D90F14-9C73-11D3-B32E-00C04F990BB4}'; + CLASS_DSOControl26: TGUID = '{F5078F1F-C551-11D3-89B9-0000F81FE221}'; + CLASS_DSOControl30: TGUID = '{F5078F39-C551-11D3-89B9-0000F81FE221}'; + CLASS_DSOControl40: TGUID = '{88D969C4-F192-11D4-A65F-0040963251E5}'; + CLASS_XMLHTTP: TGUID = '{F6D90F16-9C73-11D3-B32E-00C04F990BB4}'; + CLASS_XMLHTTP26: TGUID = '{F5078F1E-C551-11D3-89B9-0000F81FE221}'; + CLASS_XMLHTTP30: TGUID = '{F5078F35-C551-11D3-89B9-0000F81FE221}'; + CLASS_XMLHTTP40: TGUID = '{88D969C5-F192-11D4-A65F-0040963251E5}'; + CLASS_XMLHTTP60: TGUID = '{88D96A0A-F192-11D4-A65F-0040963251E5}'; + CLASS_ServerXMLHTTP: TGUID = '{AFBA6B42-5692-48EA-8141-DC517DCF0EF1}'; + CLASS_ServerXMLHTTP30: TGUID = '{AFB40FFD-B609-40A3-9828-F88BBE11E4E3}'; + CLASS_ServerXMLHTTP40: TGUID = '{88D969C6-F192-11D4-A65F-0040963251E5}'; + CLASS_ServerXMLHTTP60: TGUID = '{88D96A0B-F192-11D4-A65F-0040963251E5}'; + CLASS_SAXXMLReader: TGUID = '{079AA557-4A18-424A-8EEE-E39F0A8D41B9}'; + CLASS_SAXXMLReader30: TGUID = '{3124C396-FB13-4836-A6AD-1317F1713688}'; + CLASS_SAXXMLReader40: TGUID = '{7C6E29BC-8B8B-4C3D-859E-AF6CD158BE0F}'; + CLASS_SAXXMLReader60: TGUID = '{88D96A0C-F192-11D4-A65F-0040963251E5}'; + CLASS_MXXMLWriter: TGUID = '{FC220AD8-A72A-4EE8-926E-0B7AD152A020}'; + CLASS_MXXMLWriter30: TGUID = '{3D813DFE-6C91-4A4E-8F41-04346A841D9C}'; + CLASS_MXXMLWriter40: TGUID = '{88D969C8-F192-11D4-A65F-0040963251E5}'; + CLASS_MXXMLWriter60: TGUID = '{88D96A0F-F192-11D4-A65F-0040963251E5}'; + CLASS_MXHTMLWriter: TGUID = '{A4C23EC3-6B70-4466-9127-550077239978}'; + CLASS_MXHTMLWriter30: TGUID = '{853D1540-C1A7-4AA9-A226-4D3BD301146D}'; + CLASS_MXHTMLWriter40: TGUID = '{88D969C9-F192-11D4-A65F-0040963251E5}'; + CLASS_MXHTMLWriter60: TGUID = '{88D96A10-F192-11D4-A65F-0040963251E5}'; + CLASS_SAXAttributes: TGUID = '{4DD441AD-526D-4A77-9F1B-9841ED802FB0}'; + CLASS_SAXAttributes30: TGUID = '{3E784A01-F3AE-4DC0-9354-9526B9370EBA}'; + CLASS_SAXAttributes40: TGUID = '{88D969CA-F192-11D4-A65F-0040963251E5}'; + CLASS_SAXAttributes60: TGUID = '{88D96A0E-F192-11D4-A65F-0040963251E5}'; + CLASS_MXNamespaceManager: TGUID = '{88D969D5-F192-11D4-A65F-0040963251E5}'; + CLASS_MXNamespaceManager40: TGUID = '{88D969D6-F192-11D4-A65F-0040963251E5}'; + CLASS_MXNamespaceManager60: TGUID = '{88D96A11-F192-11D4-A65F-0040963251E5}'; + +// *********************************************************************// +// Declaration of Enumerations defined in Type Library +// *********************************************************************// +// Constants for enum tagDOMNodeType +type + tagDOMNodeType = TOleEnum; +const + NODE_INVALID = $00000000; + NODE_ELEMENT = $00000001; + NODE_ATTRIBUTE = $00000002; + NODE_TEXT = $00000003; + NODE_CDATA_SECTION = $00000004; + NODE_ENTITY_REFERENCE = $00000005; + NODE_ENTITY = $00000006; + NODE_PROCESSING_INSTRUCTION = $00000007; + NODE_COMMENT = $00000008; + NODE_DOCUMENT = $00000009; + NODE_DOCUMENT_TYPE = $0000000A; + NODE_DOCUMENT_FRAGMENT = $0000000B; + NODE_NOTATION = $0000000C; + +// Constants for enum _SOMITEMTYPE +type + _SOMITEMTYPE = TOleEnum; +const + SOMITEM_SCHEMA = $00001000; + SOMITEM_ATTRIBUTE = $00001001; + SOMITEM_ATTRIBUTEGROUP = $00001002; + SOMITEM_NOTATION = $00001003; + SOMITEM_ANNOTATION = $00001004; + SOMITEM_IDENTITYCONSTRAINT = $00001100; + SOMITEM_KEY = $00001101; + SOMITEM_KEYREF = $00001102; + SOMITEM_UNIQUE = $00001103; + SOMITEM_ANYTYPE = $00002000; + SOMITEM_DATATYPE = $00002100; + SOMITEM_DATATYPE_ANYTYPE = $00002101; + SOMITEM_DATATYPE_ANYURI = $00002102; + SOMITEM_DATATYPE_BASE64BINARY = $00002103; + SOMITEM_DATATYPE_BOOLEAN = $00002104; + SOMITEM_DATATYPE_BYTE = $00002105; + SOMITEM_DATATYPE_DATE = $00002106; + SOMITEM_DATATYPE_DATETIME = $00002107; + SOMITEM_DATATYPE_DAY = $00002108; + SOMITEM_DATATYPE_DECIMAL = $00002109; + SOMITEM_DATATYPE_DOUBLE = $0000210A; + SOMITEM_DATATYPE_DURATION = $0000210B; + SOMITEM_DATATYPE_ENTITIES = $0000210C; + SOMITEM_DATATYPE_ENTITY = $0000210D; + SOMITEM_DATATYPE_FLOAT = $0000210E; + SOMITEM_DATATYPE_HEXBINARY = $0000210F; + SOMITEM_DATATYPE_ID = $00002110; + SOMITEM_DATATYPE_IDREF = $00002111; + SOMITEM_DATATYPE_IDREFS = $00002112; + SOMITEM_DATATYPE_INT = $00002113; + SOMITEM_DATATYPE_INTEGER = $00002114; + SOMITEM_DATATYPE_LANGUAGE = $00002115; + SOMITEM_DATATYPE_LONG = $00002116; + SOMITEM_DATATYPE_MONTH = $00002117; + SOMITEM_DATATYPE_MONTHDAY = $00002118; + SOMITEM_DATATYPE_NAME = $00002119; + SOMITEM_DATATYPE_NCNAME = $0000211A; + SOMITEM_DATATYPE_NEGATIVEINTEGER = $0000211B; + SOMITEM_DATATYPE_NMTOKEN = $0000211C; + SOMITEM_DATATYPE_NMTOKENS = $0000211D; + SOMITEM_DATATYPE_NONNEGATIVEINTEGER = $0000211E; + SOMITEM_DATATYPE_NONPOSITIVEINTEGER = $0000211F; + SOMITEM_DATATYPE_NORMALIZEDSTRING = $00002120; + SOMITEM_DATATYPE_NOTATION = $00002121; + SOMITEM_DATATYPE_POSITIVEINTEGER = $00002122; + SOMITEM_DATATYPE_QNAME = $00002123; + SOMITEM_DATATYPE_SHORT = $00002124; + SOMITEM_DATATYPE_STRING = $00002125; + SOMITEM_DATATYPE_TIME = $00002126; + SOMITEM_DATATYPE_TOKEN = $00002127; + SOMITEM_DATATYPE_UNSIGNEDBYTE = $00002128; + SOMITEM_DATATYPE_UNSIGNEDINT = $00002129; + SOMITEM_DATATYPE_UNSIGNEDLONG = $0000212A; + SOMITEM_DATATYPE_UNSIGNEDSHORT = $0000212B; + SOMITEM_DATATYPE_YEAR = $0000212C; + SOMITEM_DATATYPE_YEARMONTH = $0000212D; + SOMITEM_DATATYPE_ANYSIMPLETYPE = $000021FF; + SOMITEM_SIMPLETYPE = $00002200; + SOMITEM_COMPLEXTYPE = $00002400; + SOMITEM_PARTICLE = $00004000; + SOMITEM_ANY = $00004001; + SOMITEM_ANYATTRIBUTE = $00004002; + SOMITEM_ELEMENT = $00004003; + SOMITEM_GROUP = $00004100; + SOMITEM_ALL = $00004101; + SOMITEM_CHOICE = $00004102; + SOMITEM_SEQUENCE = $00004103; + SOMITEM_EMPTYPARTICLE = $00004104; + SOMITEM_NULL = $00000800; + SOMITEM_NULL_TYPE = $00002800; + SOMITEM_NULL_ANY = $00004801; + SOMITEM_NULL_ANYATTRIBUTE = $00004802; + SOMITEM_NULL_ELEMENT = $00004803; + +// Constants for enum _SCHEMADERIVATIONMETHOD +type + _SCHEMADERIVATIONMETHOD = TOleEnum; +const + SCHEMADERIVATIONMETHOD_EMPTY = $00000000; + SCHEMADERIVATIONMETHOD_SUBSTITUTION = $00000001; + SCHEMADERIVATIONMETHOD_EXTENSION = $00000002; + SCHEMADERIVATIONMETHOD_RESTRICTION = $00000004; + SCHEMADERIVATIONMETHOD_LIST = $00000008; + SCHEMADERIVATIONMETHOD_UNION = $00000010; + SCHEMADERIVATIONMETHOD_ALL = $000000FF; + SCHEMADERIVATIONMETHOD_NONE = $00000100; + +// Constants for enum _SCHEMATYPEVARIETY +type + _SCHEMATYPEVARIETY = TOleEnum; +const + SCHEMATYPEVARIETY_NONE = $FFFFFFFF; + SCHEMATYPEVARIETY_ATOMIC = $00000000; + SCHEMATYPEVARIETY_LIST = $00000001; + SCHEMATYPEVARIETY_UNION = $00000002; + +// Constants for enum _SCHEMAWHITESPACE +type + _SCHEMAWHITESPACE = TOleEnum; +const + SCHEMAWHITESPACE_NONE = $FFFFFFFF; + SCHEMAWHITESPACE_PRESERVE = $00000000; + SCHEMAWHITESPACE_REPLACE = $00000001; + SCHEMAWHITESPACE_COLLAPSE = $00000002; + +// Constants for enum _SCHEMAPROCESSCONTENTS +type + _SCHEMAPROCESSCONTENTS = TOleEnum; +const + SCHEMAPROCESSCONTENTS_NONE = $00000000; + SCHEMAPROCESSCONTENTS_SKIP = $00000001; + SCHEMAPROCESSCONTENTS_LAX = $00000002; + SCHEMAPROCESSCONTENTS_STRICT = $00000003; + +// Constants for enum _SCHEMACONTENTTYPE +type + _SCHEMACONTENTTYPE = TOleEnum; +const + SCHEMACONTENTTYPE_EMPTY = $00000000; + SCHEMACONTENTTYPE_TEXTONLY = $00000001; + SCHEMACONTENTTYPE_ELEMENTONLY = $00000002; + SCHEMACONTENTTYPE_MIXED = $00000003; + +// Constants for enum _SCHEMAUSE +type + _SCHEMAUSE = TOleEnum; +const + SCHEMAUSE_OPTIONAL = $00000000; + SCHEMAUSE_PROHIBITED = $00000001; + SCHEMAUSE_REQUIRED = $00000002; + +// Constants for enum _SERVERXMLHTTP_OPTION +type + _SERVERXMLHTTP_OPTION = TOleEnum; +const + SXH_OPTION_URL = $FFFFFFFF; + SXH_OPTION_URL_CODEPAGE = $00000000; + SXH_OPTION_ESCAPE_PERCENT_IN_URL = $00000001; + SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS = $00000002; + SXH_OPTION_SELECT_CLIENT_SSL_CERT = $00000003; + +// Constants for enum _SXH_SERVER_CERT_OPTION +type + _SXH_SERVER_CERT_OPTION = TOleEnum; +const + SXH_SERVER_CERT_IGNORE_UNKNOWN_CA = $00000100; + SXH_SERVER_CERT_IGNORE_WRONG_USAGE = $00000200; + SXH_SERVER_CERT_IGNORE_CERT_CN_INVALID = $00001000; + SXH_SERVER_CERT_IGNORE_CERT_DATE_INVALID = $00002000; + SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS = $00003300; + +// Constants for enum _SXH_PROXY_SETTING +type + _SXH_PROXY_SETTING = TOleEnum; +const + SXH_PROXY_SET_DEFAULT = $00000000; + SXH_PROXY_SET_PRECONFIG = $00000000; + SXH_PROXY_SET_DIRECT = $00000001; + SXH_PROXY_SET_PROXY = $00000002; + +type + +// *********************************************************************// +// Forward declaration of types defined in TypeLibrary +// *********************************************************************// + IXMLDOMImplementation = interface; + IXMLDOMImplementationDisp = dispinterface; + IXMLDOMNode = interface; + IXMLDOMNodeDisp = dispinterface; + IXMLDOMNodeList = interface; + IXMLDOMNodeListDisp = dispinterface; + IXMLDOMNamedNodeMap = interface; + IXMLDOMNamedNodeMapDisp = dispinterface; + IXMLDOMDocument = interface; + IXMLDOMDocumentDisp = dispinterface; + IXMLDOMDocumentType = interface; + IXMLDOMDocumentTypeDisp = dispinterface; + IXMLDOMElement = interface; + IXMLDOMElementDisp = dispinterface; + IXMLDOMAttribute = interface; + IXMLDOMAttributeDisp = dispinterface; + IXMLDOMDocumentFragment = interface; + IXMLDOMDocumentFragmentDisp = dispinterface; + IXMLDOMCharacterData = interface; + IXMLDOMCharacterDataDisp = dispinterface; + IXMLDOMText = interface; + IXMLDOMTextDisp = dispinterface; + IXMLDOMComment = interface; + IXMLDOMCommentDisp = dispinterface; + IXMLDOMCDATASection = interface; + IXMLDOMCDATASectionDisp = dispinterface; + IXMLDOMProcessingInstruction = interface; + IXMLDOMProcessingInstructionDisp = dispinterface; + IXMLDOMEntityReference = interface; + IXMLDOMEntityReferenceDisp = dispinterface; + IXMLDOMParseError = interface; + IXMLDOMParseErrorDisp = dispinterface; + IXMLDOMDocument2 = interface; + IXMLDOMDocument2Disp = dispinterface; + IXMLDOMSchemaCollection = interface; + IXMLDOMSchemaCollectionDisp = dispinterface; + IXMLDOMDocument3 = interface; + IXMLDOMDocument3Disp = dispinterface; + IXMLDOMNotation = interface; + IXMLDOMNotationDisp = dispinterface; + IXMLDOMEntity = interface; + IXMLDOMEntityDisp = dispinterface; + IXMLDOMParseError2 = interface; + IXMLDOMParseError2Disp = dispinterface; + IXMLDOMParseErrorCollection = interface; + IXMLDOMParseErrorCollectionDisp = dispinterface; + IXTLRuntime = interface; + IXTLRuntimeDisp = dispinterface; + IXSLTemplate = interface; + IXSLTemplateDisp = dispinterface; + IXSLProcessor = interface; + IXSLProcessorDisp = dispinterface; + ISAXXMLReader = interface; + ISAXEntityResolver = interface; + ISAXContentHandler = interface; + ISAXLocator = interface; + ISAXAttributes = interface; + ISAXDTDHandler = interface; + ISAXErrorHandler = interface; + ISAXXMLFilter = interface; + ISAXLexicalHandler = interface; + ISAXDeclHandler = interface; + IVBSAXXMLReader = interface; + IVBSAXXMLReaderDisp = dispinterface; + IVBSAXEntityResolver = interface; + IVBSAXEntityResolverDisp = dispinterface; + IVBSAXContentHandler = interface; + IVBSAXContentHandlerDisp = dispinterface; + IVBSAXLocator = interface; + IVBSAXLocatorDisp = dispinterface; + IVBSAXAttributes = interface; + IVBSAXAttributesDisp = dispinterface; + IVBSAXDTDHandler = interface; + IVBSAXDTDHandlerDisp = dispinterface; + IVBSAXErrorHandler = interface; + IVBSAXErrorHandlerDisp = dispinterface; + IVBSAXXMLFilter = interface; + IVBSAXXMLFilterDisp = dispinterface; + IVBSAXLexicalHandler = interface; + IVBSAXLexicalHandlerDisp = dispinterface; + IVBSAXDeclHandler = interface; + IVBSAXDeclHandlerDisp = dispinterface; + IMXWriter = interface; + IMXWriterDisp = dispinterface; + IMXAttributes = interface; + IMXAttributesDisp = dispinterface; + IMXReaderControl = interface; + IMXReaderControlDisp = dispinterface; + IMXSchemaDeclHandler = interface; + IMXSchemaDeclHandlerDisp = dispinterface; + ISchemaItem = interface; + ISchemaItemDisp = dispinterface; + ISchemaParticle = interface; + ISchemaParticleDisp = dispinterface; + ISchemaElement = interface; + ISchemaElementDisp = dispinterface; + ISchema = interface; + ISchemaDisp = dispinterface; + ISchemaItemCollection = interface; + ISchemaItemCollectionDisp = dispinterface; + ISchemaStringCollection = interface; + ISchemaStringCollectionDisp = dispinterface; + ISchemaType = interface; + ISchemaTypeDisp = dispinterface; + ISchemaComplexType = interface; + ISchemaComplexTypeDisp = dispinterface; + ISchemaAny = interface; + ISchemaAnyDisp = dispinterface; + ISchemaModelGroup = interface; + ISchemaModelGroupDisp = dispinterface; + IMXXMLFilter = interface; + IMXXMLFilterDisp = dispinterface; + IXMLDOMSchemaCollection2 = interface; + IXMLDOMSchemaCollection2Disp = dispinterface; + ISchemaAttribute = interface; + ISchemaAttributeDisp = dispinterface; + ISchemaAttributeGroup = interface; + ISchemaAttributeGroupDisp = dispinterface; + ISchemaIdentityConstraint = interface; + ISchemaIdentityConstraintDisp = dispinterface; + ISchemaNotation = interface; + ISchemaNotationDisp = dispinterface; + IXMLDOMSelection = interface; + IXMLDOMSelectionDisp = dispinterface; + XMLDOMDocumentEvents = dispinterface; + IDSOControl = interface; + IDSOControlDisp = dispinterface; + IXMLHTTPRequest = interface; + IXMLHTTPRequestDisp = dispinterface; + IServerXMLHTTPRequest = interface; + IServerXMLHTTPRequestDisp = dispinterface; + IServerXMLHTTPRequest2 = interface; + IServerXMLHTTPRequest2Disp = dispinterface; + IMXNamespacePrefixes = interface; + IMXNamespacePrefixesDisp = dispinterface; + IVBMXNamespaceManager = interface; + IVBMXNamespaceManagerDisp = dispinterface; + IMXNamespaceManager = interface; + +// *********************************************************************// +// Declaration of CoClasses defined in Type Library +// (NOTE: Here we map each CoClass to its Default Interface) +// *********************************************************************// + DOMDocument = IXMLDOMDocument2; + DOMDocument26 = IXMLDOMDocument2; + DOMDocument30 = IXMLDOMDocument2; + DOMDocument40 = IXMLDOMDocument2; + DOMDocument60 = IXMLDOMDocument3; + FreeThreadedDOMDocument = IXMLDOMDocument2; + FreeThreadedDOMDocument26 = IXMLDOMDocument2; + FreeThreadedDOMDocument30 = IXMLDOMDocument2; + FreeThreadedDOMDocument40 = IXMLDOMDocument2; + FreeThreadedDOMDocument60 = IXMLDOMDocument3; + XMLSchemaCache = IXMLDOMSchemaCollection; + XMLSchemaCache26 = IXMLDOMSchemaCollection; + XMLSchemaCache30 = IXMLDOMSchemaCollection; + XMLSchemaCache40 = IXMLDOMSchemaCollection2; + XMLSchemaCache60 = IXMLDOMSchemaCollection2; + XSLTemplate = IXSLTemplate; + XSLTemplate26 = IXSLTemplate; + XSLTemplate30 = IXSLTemplate; + XSLTemplate40 = IXSLTemplate; + XSLTemplate60 = IXSLTemplate; + DSOControl = IDSOControl; + DSOControl26 = IDSOControl; + DSOControl30 = IDSOControl; + DSOControl40 = IDSOControl; + XMLHTTP = IXMLHTTPRequest; + XMLHTTP26 = IXMLHTTPRequest; + XMLHTTP30 = IXMLHTTPRequest; + XMLHTTP40 = IXMLHTTPRequest; + XMLHTTP60 = IXMLHTTPRequest; + ServerXMLHTTP = IServerXMLHTTPRequest; + ServerXMLHTTP30 = IServerXMLHTTPRequest; + ServerXMLHTTP40 = IServerXMLHTTPRequest2; + ServerXMLHTTP60 = IServerXMLHTTPRequest2; + SAXXMLReader = IVBSAXXMLReader; + SAXXMLReader30 = IVBSAXXMLReader; + SAXXMLReader40 = IVBSAXXMLReader; + SAXXMLReader60 = IVBSAXXMLReader; + MXXMLWriter = IMXWriter; + MXXMLWriter30 = IMXWriter; + MXXMLWriter40 = IMXWriter; + MXXMLWriter60 = IMXWriter; + MXHTMLWriter = IMXWriter; + MXHTMLWriter30 = IMXWriter; + MXHTMLWriter40 = IMXWriter; + MXHTMLWriter60 = IMXWriter; + SAXAttributes = IMXAttributes; + SAXAttributes30 = IMXAttributes; + SAXAttributes40 = IMXAttributes; + SAXAttributes60 = IMXAttributes; + MXNamespaceManager = IVBMXNamespaceManager; + MXNamespaceManager40 = IVBMXNamespaceManager; + MXNamespaceManager60 = IVBMXNamespaceManager; + + +// *********************************************************************// +// Declaration of structures, unions and aliases. +// *********************************************************************// + PWord1 = ^Word; {*} + + DOMNodeType = tagDOMNodeType; + SOMITEMTYPE = _SOMITEMTYPE; + SCHEMADERIVATIONMETHOD = _SCHEMADERIVATIONMETHOD; + SCHEMATYPEVARIETY = _SCHEMATYPEVARIETY; + SCHEMAWHITESPACE = _SCHEMAWHITESPACE; + SCHEMAPROCESSCONTENTS = _SCHEMAPROCESSCONTENTS; + SCHEMACONTENTTYPE = _SCHEMACONTENTTYPE; + SCHEMAUSE = _SCHEMAUSE; + SERVERXMLHTTP_OPTION = _SERVERXMLHTTP_OPTION; + SXH_SERVER_CERT_OPTION = _SXH_SERVER_CERT_OPTION; + SXH_PROXY_SETTING = _SXH_PROXY_SETTING; + +// *********************************************************************// +// Interface: IXMLDOMImplementation +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF8F-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMImplementation = interface(IDispatch) + ['{2933BF8F-7B36-11D2-B20E-00C04F983E60}'] + function hasFeature(const feature: WideString; const version: WideString): WordBool; safecall; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMImplementationDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF8F-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMImplementationDisp = dispinterface + ['{2933BF8F-7B36-11D2-B20E-00C04F983E60}'] + function hasFeature(const feature: WideString; const version: WideString): WordBool; dispid 145; + end; + +// *********************************************************************// +// Interface: IXMLDOMNode +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF80-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMNode = interface(IDispatch) + ['{2933BF80-7B36-11D2-B20E-00C04F983E60}'] + function Get_nodeName: WideString; safecall; + function Get_nodeValue: OleVariant; safecall; + procedure Set_nodeValue(value: OleVariant); safecall; + function Get_nodeType: DOMNodeType; safecall; + function Get_parentNode: IXMLDOMNode; safecall; + function Get_childNodes: IXMLDOMNodeList; safecall; + function Get_firstChild: IXMLDOMNode; safecall; + function Get_lastChild: IXMLDOMNode; safecall; + function Get_previousSibling: IXMLDOMNode; safecall; + function Get_nextSibling: IXMLDOMNode; safecall; + function Get_attributes: IXMLDOMNamedNodeMap; safecall; + function insertBefore(const newChild: IXMLDOMNode; refChild: OleVariant): IXMLDOMNode; safecall; + function replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; safecall; + function removeChild(const childNode: IXMLDOMNode): IXMLDOMNode; safecall; + function appendChild(const newChild: IXMLDOMNode): IXMLDOMNode; safecall; + function hasChildNodes: WordBool; safecall; + function Get_ownerDocument: IXMLDOMDocument; safecall; + function cloneNode(deep: WordBool): IXMLDOMNode; safecall; + function Get_nodeTypeString: WideString; safecall; + function Get_text: WideString; safecall; + procedure Set_text(const text: WideString); safecall; + function Get_specified: WordBool; safecall; + function Get_definition: IXMLDOMNode; safecall; + function Get_nodeTypedValue: OleVariant; safecall; + procedure Set_nodeTypedValue(typedValue: OleVariant); safecall; + function Get_dataType: OleVariant; safecall; + procedure Set_dataType(const dataTypeName: WideString); safecall; + function Get_xml: WideString; safecall; + function transformNode(const stylesheet: IXMLDOMNode): WideString; safecall; + function selectNodes(const queryString: WideString): IXMLDOMNodeList; safecall; + function selectSingleNode(const queryString: WideString): IXMLDOMNode; safecall; + function Get_parsed: WordBool; safecall; + function Get_namespaceURI: WideString; safecall; + function Get_prefix: WideString; safecall; + function Get_baseName: WideString; safecall; + procedure transformNodeToObject(const stylesheet: IXMLDOMNode; outputObject: OleVariant); safecall; + property nodeName: WideString read Get_nodeName; + property nodeValue: OleVariant read Get_nodeValue write Set_nodeValue; + property nodeType: DOMNodeType read Get_nodeType; + property parentNode: IXMLDOMNode read Get_parentNode; + property childNodes: IXMLDOMNodeList read Get_childNodes; + property firstChild: IXMLDOMNode read Get_firstChild; + property lastChild: IXMLDOMNode read Get_lastChild; + property previousSibling: IXMLDOMNode read Get_previousSibling; + property nextSibling: IXMLDOMNode read Get_nextSibling; + property attributes: IXMLDOMNamedNodeMap read Get_attributes; + property ownerDocument: IXMLDOMDocument read Get_ownerDocument; + property nodeTypeString: WideString read Get_nodeTypeString; + property text: WideString read Get_text write Set_text; + property specified: WordBool read Get_specified; + property definition: IXMLDOMNode read Get_definition; + property nodeTypedValue: OleVariant read Get_nodeTypedValue write Set_nodeTypedValue; + property xml: WideString read Get_xml; + property parsed: WordBool read Get_parsed; + property namespaceURI: WideString read Get_namespaceURI; + property prefix: WideString read Get_prefix; + property baseName: WideString read Get_baseName; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMNodeDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF80-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMNodeDisp = dispinterface + ['{2933BF80-7B36-11D2-B20E-00C04F983E60}'] + property nodeName: WideString readonly dispid 2; + property nodeValue: OleVariant dispid 3; + property nodeType: DOMNodeType readonly dispid 4; + property parentNode: IXMLDOMNode readonly dispid 6; + property childNodes: IXMLDOMNodeList readonly dispid 7; + property firstChild: IXMLDOMNode readonly dispid 8; + property lastChild: IXMLDOMNode readonly dispid 9; + property previousSibling: IXMLDOMNode readonly dispid 10; + property nextSibling: IXMLDOMNode readonly dispid 11; + property attributes: IXMLDOMNamedNodeMap readonly dispid 12; + function insertBefore(const newChild: IXMLDOMNode; refChild: OleVariant): IXMLDOMNode; dispid 13; + function replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; dispid 14; + function removeChild(const childNode: IXMLDOMNode): IXMLDOMNode; dispid 15; + function appendChild(const newChild: IXMLDOMNode): IXMLDOMNode; dispid 16; + function hasChildNodes: WordBool; dispid 17; + property ownerDocument: IXMLDOMDocument readonly dispid 18; + function cloneNode(deep: WordBool): IXMLDOMNode; dispid 19; + property nodeTypeString: WideString readonly dispid 21; + property text: WideString dispid 24; + property specified: WordBool readonly dispid 22; + property definition: IXMLDOMNode readonly dispid 23; + property nodeTypedValue: OleVariant dispid 25; + function dataType: OleVariant; dispid 26; + property xml: WideString readonly dispid 27; + function transformNode(const stylesheet: IXMLDOMNode): WideString; dispid 28; + function selectNodes(const queryString: WideString): IXMLDOMNodeList; dispid 29; + function selectSingleNode(const queryString: WideString): IXMLDOMNode; dispid 30; + property parsed: WordBool readonly dispid 31; + property namespaceURI: WideString readonly dispid 32; + property prefix: WideString readonly dispid 33; + property baseName: WideString readonly dispid 34; + procedure transformNodeToObject(const stylesheet: IXMLDOMNode; outputObject: OleVariant); dispid 35; + end; + +// *********************************************************************// +// Interface: IXMLDOMNodeList +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF82-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMNodeList = interface(IDispatch) + ['{2933BF82-7B36-11D2-B20E-00C04F983E60}'] + function Get_item(index: Integer): IXMLDOMNode; safecall; + function Get_length: Integer; safecall; + function nextNode: IXMLDOMNode; safecall; + procedure reset; safecall; + function Get__newEnum: IUnknown; safecall; + property item[index: Integer]: IXMLDOMNode read Get_item; default; + property length: Integer read Get_length; + property _newEnum: IUnknown read Get__newEnum; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMNodeListDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF82-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMNodeListDisp = dispinterface + ['{2933BF82-7B36-11D2-B20E-00C04F983E60}'] + property item[index: Integer]: IXMLDOMNode readonly dispid 0; default; + property length: Integer readonly dispid 74; + function nextNode: IXMLDOMNode; dispid 76; + procedure reset; dispid 77; + property _newEnum: IUnknown readonly dispid -4; + end; + +// *********************************************************************// +// Interface: IXMLDOMNamedNodeMap +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF83-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMNamedNodeMap = interface(IDispatch) + ['{2933BF83-7B36-11D2-B20E-00C04F983E60}'] + function getNamedItem(const name: WideString): IXMLDOMNode; safecall; + function setNamedItem(const newItem: IXMLDOMNode): IXMLDOMNode; safecall; + function removeNamedItem(const name: WideString): IXMLDOMNode; safecall; + function Get_item(index: Integer): IXMLDOMNode; safecall; + function Get_length: Integer; safecall; + function getQualifiedItem(const baseName: WideString; const namespaceURI: WideString): IXMLDOMNode; safecall; + function removeQualifiedItem(const baseName: WideString; const namespaceURI: WideString): IXMLDOMNode; safecall; + function nextNode: IXMLDOMNode; safecall; + procedure reset; safecall; + function Get__newEnum: IUnknown; safecall; + property item[index: Integer]: IXMLDOMNode read Get_item; default; + property length: Integer read Get_length; + property _newEnum: IUnknown read Get__newEnum; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMNamedNodeMapDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF83-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMNamedNodeMapDisp = dispinterface + ['{2933BF83-7B36-11D2-B20E-00C04F983E60}'] + function getNamedItem(const name: WideString): IXMLDOMNode; dispid 83; + function setNamedItem(const newItem: IXMLDOMNode): IXMLDOMNode; dispid 84; + function removeNamedItem(const name: WideString): IXMLDOMNode; dispid 85; + property item[index: Integer]: IXMLDOMNode readonly dispid 0; default; + property length: Integer readonly dispid 74; + function getQualifiedItem(const baseName: WideString; const namespaceURI: WideString): IXMLDOMNode; dispid 87; + function removeQualifiedItem(const baseName: WideString; const namespaceURI: WideString): IXMLDOMNode; dispid 88; + function nextNode: IXMLDOMNode; dispid 89; + procedure reset; dispid 90; + property _newEnum: IUnknown readonly dispid -4; + end; + +// *********************************************************************// +// Interface: IXMLDOMDocument +// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF81-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMDocument = interface(IXMLDOMNode) + ['{2933BF81-7B36-11D2-B20E-00C04F983E60}'] + function Get_doctype: IXMLDOMDocumentType; safecall; + function Get_implementation_: IXMLDOMImplementation; safecall; + function Get_documentElement: IXMLDOMElement; safecall; + procedure _Set_documentElement(const DOMElement: IXMLDOMElement); safecall; + function createElement(const tagName: WideString): IXMLDOMElement; safecall; + function createDocumentFragment: IXMLDOMDocumentFragment; safecall; + function createTextNode(const data: WideString): IXMLDOMText; safecall; + function createComment(const data: WideString): IXMLDOMComment; safecall; + function createCDATASection(const data: WideString): IXMLDOMCDATASection; safecall; + function createProcessingInstruction(const target: WideString; const data: WideString): IXMLDOMProcessingInstruction; safecall; + function createAttribute(const name: WideString): IXMLDOMAttribute; safecall; + function createEntityReference(const name: WideString): IXMLDOMEntityReference; safecall; + function getElementsByTagName(const tagName: WideString): IXMLDOMNodeList; safecall; + function createNode(type_: OleVariant; const name: WideString; const namespaceURI: WideString): IXMLDOMNode; safecall; + function nodeFromID(const idString: WideString): IXMLDOMNode; safecall; + function load(xmlSource: OleVariant): WordBool; safecall; + function Get_readyState: Integer; safecall; + function Get_parseError: IXMLDOMParseError; safecall; + function Get_url: WideString; safecall; + function Get_async: WordBool; safecall; + procedure Set_async(isAsync: WordBool); safecall; + procedure abort; safecall; + function loadXML(const bstrXML: WideString): WordBool; safecall; + procedure save(destination: OleVariant); safecall; + function Get_validateOnParse: WordBool; safecall; + procedure Set_validateOnParse(isValidating: WordBool); safecall; + function Get_resolveExternals: WordBool; safecall; + procedure Set_resolveExternals(isResolving: WordBool); safecall; + function Get_preserveWhiteSpace: WordBool; safecall; + procedure Set_preserveWhiteSpace(isPreserving: WordBool); safecall; + procedure Set_onreadystatechange(Param1: OleVariant); safecall; + procedure Set_ondataavailable(Param1: OleVariant); safecall; + procedure Set_ontransformnode(Param1: OleVariant); safecall; + property doctype: IXMLDOMDocumentType read Get_doctype; + property implementation_: IXMLDOMImplementation read Get_implementation_; + property documentElement: IXMLDOMElement read Get_documentElement write _Set_documentElement; + property readyState: Integer read Get_readyState; + property parseError: IXMLDOMParseError read Get_parseError; + property url: WideString read Get_url; + property async: WordBool read Get_async write Set_async; + property validateOnParse: WordBool read Get_validateOnParse write Set_validateOnParse; + property resolveExternals: WordBool read Get_resolveExternals write Set_resolveExternals; + property preserveWhiteSpace: WordBool read Get_preserveWhiteSpace write Set_preserveWhiteSpace; + property onreadystatechange: OleVariant write Set_onreadystatechange; + property ondataavailable: OleVariant write Set_ondataavailable; + property ontransformnode: OleVariant write Set_ontransformnode; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMDocumentDisp +// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF81-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMDocumentDisp = dispinterface + ['{2933BF81-7B36-11D2-B20E-00C04F983E60}'] + property doctype: IXMLDOMDocumentType readonly dispid 38; + property implementation_: IXMLDOMImplementation readonly dispid 39; + property documentElement: IXMLDOMElement dispid 40; + function createElement(const tagName: WideString): IXMLDOMElement; dispid 41; + function createDocumentFragment: IXMLDOMDocumentFragment; dispid 42; + function createTextNode(const data: WideString): IXMLDOMText; dispid 43; + function createComment(const data: WideString): IXMLDOMComment; dispid 44; + function createCDATASection(const data: WideString): IXMLDOMCDATASection; dispid 45; + function createProcessingInstruction(const target: WideString; const data: WideString): IXMLDOMProcessingInstruction; dispid 46; + function createAttribute(const name: WideString): IXMLDOMAttribute; dispid 47; + function createEntityReference(const name: WideString): IXMLDOMEntityReference; dispid 49; + function getElementsByTagName(const tagName: WideString): IXMLDOMNodeList; dispid 50; + function createNode(type_: OleVariant; const name: WideString; const namespaceURI: WideString): IXMLDOMNode; dispid 54; + function nodeFromID(const idString: WideString): IXMLDOMNode; dispid 56; + function load(xmlSource: OleVariant): WordBool; dispid 58; + property readyState: Integer readonly dispid -525; + property parseError: IXMLDOMParseError readonly dispid 59; + property url: WideString readonly dispid 60; + property async: WordBool dispid 61; + procedure abort; dispid 62; + function loadXML(const bstrXML: WideString): WordBool; dispid 63; + procedure save(destination: OleVariant); dispid 64; + property validateOnParse: WordBool dispid 65; + property resolveExternals: WordBool dispid 66; + property preserveWhiteSpace: WordBool dispid 67; + property onreadystatechange: OleVariant writeonly dispid 68; + property ondataavailable: OleVariant writeonly dispid 69; + property ontransformnode: OleVariant writeonly dispid 70; + property nodeName: WideString readonly dispid 2; + property nodeValue: OleVariant dispid 3; + property nodeType: DOMNodeType readonly dispid 4; + property parentNode: IXMLDOMNode readonly dispid 6; + property childNodes: IXMLDOMNodeList readonly dispid 7; + property firstChild: IXMLDOMNode readonly dispid 8; + property lastChild: IXMLDOMNode readonly dispid 9; + property previousSibling: IXMLDOMNode readonly dispid 10; + property nextSibling: IXMLDOMNode readonly dispid 11; + property attributes: IXMLDOMNamedNodeMap readonly dispid 12; + function insertBefore(const newChild: IXMLDOMNode; refChild: OleVariant): IXMLDOMNode; dispid 13; + function replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; dispid 14; + function removeChild(const childNode: IXMLDOMNode): IXMLDOMNode; dispid 15; + function appendChild(const newChild: IXMLDOMNode): IXMLDOMNode; dispid 16; + function hasChildNodes: WordBool; dispid 17; + property ownerDocument: IXMLDOMDocument readonly dispid 18; + function cloneNode(deep: WordBool): IXMLDOMNode; dispid 19; + property nodeTypeString: WideString readonly dispid 21; + property text: WideString dispid 24; + property specified: WordBool readonly dispid 22; + property definition: IXMLDOMNode readonly dispid 23; + property nodeTypedValue: OleVariant dispid 25; + function dataType: OleVariant; dispid 26; + property xml: WideString readonly dispid 27; + function transformNode(const stylesheet: IXMLDOMNode): WideString; dispid 28; + function selectNodes(const queryString: WideString): IXMLDOMNodeList; dispid 29; + function selectSingleNode(const queryString: WideString): IXMLDOMNode; dispid 30; + property parsed: WordBool readonly dispid 31; + property namespaceURI: WideString readonly dispid 32; + property prefix: WideString readonly dispid 33; + property baseName: WideString readonly dispid 34; + procedure transformNodeToObject(const stylesheet: IXMLDOMNode; outputObject: OleVariant); dispid 35; + end; + +// *********************************************************************// +// Interface: IXMLDOMDocumentType +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF8B-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMDocumentType = interface(IXMLDOMNode) + ['{2933BF8B-7B36-11D2-B20E-00C04F983E60}'] + function Get_name: WideString; safecall; + function Get_entities: IXMLDOMNamedNodeMap; safecall; + function Get_notations: IXMLDOMNamedNodeMap; safecall; + property name: WideString read Get_name; + property entities: IXMLDOMNamedNodeMap read Get_entities; + property notations: IXMLDOMNamedNodeMap read Get_notations; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMDocumentTypeDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF8B-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMDocumentTypeDisp = dispinterface + ['{2933BF8B-7B36-11D2-B20E-00C04F983E60}'] + property name: WideString readonly dispid 131; + property entities: IXMLDOMNamedNodeMap readonly dispid 132; + property notations: IXMLDOMNamedNodeMap readonly dispid 133; + property nodeName: WideString readonly dispid 2; + property nodeValue: OleVariant dispid 3; + property nodeType: DOMNodeType readonly dispid 4; + property parentNode: IXMLDOMNode readonly dispid 6; + property childNodes: IXMLDOMNodeList readonly dispid 7; + property firstChild: IXMLDOMNode readonly dispid 8; + property lastChild: IXMLDOMNode readonly dispid 9; + property previousSibling: IXMLDOMNode readonly dispid 10; + property nextSibling: IXMLDOMNode readonly dispid 11; + property attributes: IXMLDOMNamedNodeMap readonly dispid 12; + function insertBefore(const newChild: IXMLDOMNode; refChild: OleVariant): IXMLDOMNode; dispid 13; + function replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; dispid 14; + function removeChild(const childNode: IXMLDOMNode): IXMLDOMNode; dispid 15; + function appendChild(const newChild: IXMLDOMNode): IXMLDOMNode; dispid 16; + function hasChildNodes: WordBool; dispid 17; + property ownerDocument: IXMLDOMDocument readonly dispid 18; + function cloneNode(deep: WordBool): IXMLDOMNode; dispid 19; + property nodeTypeString: WideString readonly dispid 21; + property text: WideString dispid 24; + property specified: WordBool readonly dispid 22; + property definition: IXMLDOMNode readonly dispid 23; + property nodeTypedValue: OleVariant dispid 25; + function dataType: OleVariant; dispid 26; + property xml: WideString readonly dispid 27; + function transformNode(const stylesheet: IXMLDOMNode): WideString; dispid 28; + function selectNodes(const queryString: WideString): IXMLDOMNodeList; dispid 29; + function selectSingleNode(const queryString: WideString): IXMLDOMNode; dispid 30; + property parsed: WordBool readonly dispid 31; + property namespaceURI: WideString readonly dispid 32; + property prefix: WideString readonly dispid 33; + property baseName: WideString readonly dispid 34; + procedure transformNodeToObject(const stylesheet: IXMLDOMNode; outputObject: OleVariant); dispid 35; + end; + +// *********************************************************************// +// Interface: IXMLDOMElement +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF86-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMElement = interface(IXMLDOMNode) + ['{2933BF86-7B36-11D2-B20E-00C04F983E60}'] + function Get_tagName: WideString; safecall; + function getAttribute(const name: WideString): OleVariant; safecall; + procedure setAttribute(const name: WideString; value: OleVariant); safecall; + procedure removeAttribute(const name: WideString); safecall; + function getAttributeNode(const name: WideString): IXMLDOMAttribute; safecall; + function setAttributeNode(const DOMAttribute: IXMLDOMAttribute): IXMLDOMAttribute; safecall; + function removeAttributeNode(const DOMAttribute: IXMLDOMAttribute): IXMLDOMAttribute; safecall; + function getElementsByTagName(const tagName: WideString): IXMLDOMNodeList; safecall; + procedure normalize; safecall; + property tagName: WideString read Get_tagName; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMElementDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF86-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMElementDisp = dispinterface + ['{2933BF86-7B36-11D2-B20E-00C04F983E60}'] + property tagName: WideString readonly dispid 97; + function getAttribute(const name: WideString): OleVariant; dispid 99; + procedure setAttribute(const name: WideString; value: OleVariant); dispid 100; + procedure removeAttribute(const name: WideString); dispid 101; + function getAttributeNode(const name: WideString): IXMLDOMAttribute; dispid 102; + function setAttributeNode(const DOMAttribute: IXMLDOMAttribute): IXMLDOMAttribute; dispid 103; + function removeAttributeNode(const DOMAttribute: IXMLDOMAttribute): IXMLDOMAttribute; dispid 104; + function getElementsByTagName(const tagName: WideString): IXMLDOMNodeList; dispid 105; + procedure normalize; dispid 106; + property nodeName: WideString readonly dispid 2; + property nodeValue: OleVariant dispid 3; + property nodeType: DOMNodeType readonly dispid 4; + property parentNode: IXMLDOMNode readonly dispid 6; + property childNodes: IXMLDOMNodeList readonly dispid 7; + property firstChild: IXMLDOMNode readonly dispid 8; + property lastChild: IXMLDOMNode readonly dispid 9; + property previousSibling: IXMLDOMNode readonly dispid 10; + property nextSibling: IXMLDOMNode readonly dispid 11; + property attributes: IXMLDOMNamedNodeMap readonly dispid 12; + function insertBefore(const newChild: IXMLDOMNode; refChild: OleVariant): IXMLDOMNode; dispid 13; + function replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; dispid 14; + function removeChild(const childNode: IXMLDOMNode): IXMLDOMNode; dispid 15; + function appendChild(const newChild: IXMLDOMNode): IXMLDOMNode; dispid 16; + function hasChildNodes: WordBool; dispid 17; + property ownerDocument: IXMLDOMDocument readonly dispid 18; + function cloneNode(deep: WordBool): IXMLDOMNode; dispid 19; + property nodeTypeString: WideString readonly dispid 21; + property text: WideString dispid 24; + property specified: WordBool readonly dispid 22; + property definition: IXMLDOMNode readonly dispid 23; + property nodeTypedValue: OleVariant dispid 25; + function dataType: OleVariant; dispid 26; + property xml: WideString readonly dispid 27; + function transformNode(const stylesheet: IXMLDOMNode): WideString; dispid 28; + function selectNodes(const queryString: WideString): IXMLDOMNodeList; dispid 29; + function selectSingleNode(const queryString: WideString): IXMLDOMNode; dispid 30; + property parsed: WordBool readonly dispid 31; + property namespaceURI: WideString readonly dispid 32; + property prefix: WideString readonly dispid 33; + property baseName: WideString readonly dispid 34; + procedure transformNodeToObject(const stylesheet: IXMLDOMNode; outputObject: OleVariant); dispid 35; + end; + +// *********************************************************************// +// Interface: IXMLDOMAttribute +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF85-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMAttribute = interface(IXMLDOMNode) + ['{2933BF85-7B36-11D2-B20E-00C04F983E60}'] + function Get_name: WideString; safecall; + function Get_value: OleVariant; safecall; + procedure Set_value(attributeValue: OleVariant); safecall; + property name: WideString read Get_name; + property value: OleVariant read Get_value write Set_value; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMAttributeDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF85-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMAttributeDisp = dispinterface + ['{2933BF85-7B36-11D2-B20E-00C04F983E60}'] + property name: WideString readonly dispid 118; + property value: OleVariant dispid 120; + property nodeName: WideString readonly dispid 2; + property nodeValue: OleVariant dispid 3; + property nodeType: DOMNodeType readonly dispid 4; + property parentNode: IXMLDOMNode readonly dispid 6; + property childNodes: IXMLDOMNodeList readonly dispid 7; + property firstChild: IXMLDOMNode readonly dispid 8; + property lastChild: IXMLDOMNode readonly dispid 9; + property previousSibling: IXMLDOMNode readonly dispid 10; + property nextSibling: IXMLDOMNode readonly dispid 11; + property attributes: IXMLDOMNamedNodeMap readonly dispid 12; + function insertBefore(const newChild: IXMLDOMNode; refChild: OleVariant): IXMLDOMNode; dispid 13; + function replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; dispid 14; + function removeChild(const childNode: IXMLDOMNode): IXMLDOMNode; dispid 15; + function appendChild(const newChild: IXMLDOMNode): IXMLDOMNode; dispid 16; + function hasChildNodes: WordBool; dispid 17; + property ownerDocument: IXMLDOMDocument readonly dispid 18; + function cloneNode(deep: WordBool): IXMLDOMNode; dispid 19; + property nodeTypeString: WideString readonly dispid 21; + property text: WideString dispid 24; + property specified: WordBool readonly dispid 22; + property definition: IXMLDOMNode readonly dispid 23; + property nodeTypedValue: OleVariant dispid 25; + function dataType: OleVariant; dispid 26; + property xml: WideString readonly dispid 27; + function transformNode(const stylesheet: IXMLDOMNode): WideString; dispid 28; + function selectNodes(const queryString: WideString): IXMLDOMNodeList; dispid 29; + function selectSingleNode(const queryString: WideString): IXMLDOMNode; dispid 30; + property parsed: WordBool readonly dispid 31; + property namespaceURI: WideString readonly dispid 32; + property prefix: WideString readonly dispid 33; + property baseName: WideString readonly dispid 34; + procedure transformNodeToObject(const stylesheet: IXMLDOMNode; outputObject: OleVariant); dispid 35; + end; + +// *********************************************************************// +// Interface: IXMLDOMDocumentFragment +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {3EFAA413-272F-11D2-836F-0000F87A7782} +// *********************************************************************// + IXMLDOMDocumentFragment = interface(IXMLDOMNode) + ['{3EFAA413-272F-11D2-836F-0000F87A7782}'] + end; + +// *********************************************************************// +// DispIntf: IXMLDOMDocumentFragmentDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {3EFAA413-272F-11D2-836F-0000F87A7782} +// *********************************************************************// + IXMLDOMDocumentFragmentDisp = dispinterface + ['{3EFAA413-272F-11D2-836F-0000F87A7782}'] + property nodeName: WideString readonly dispid 2; + property nodeValue: OleVariant dispid 3; + property nodeType: DOMNodeType readonly dispid 4; + property parentNode: IXMLDOMNode readonly dispid 6; + property childNodes: IXMLDOMNodeList readonly dispid 7; + property firstChild: IXMLDOMNode readonly dispid 8; + property lastChild: IXMLDOMNode readonly dispid 9; + property previousSibling: IXMLDOMNode readonly dispid 10; + property nextSibling: IXMLDOMNode readonly dispid 11; + property attributes: IXMLDOMNamedNodeMap readonly dispid 12; + function insertBefore(const newChild: IXMLDOMNode; refChild: OleVariant): IXMLDOMNode; dispid 13; + function replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; dispid 14; + function removeChild(const childNode: IXMLDOMNode): IXMLDOMNode; dispid 15; + function appendChild(const newChild: IXMLDOMNode): IXMLDOMNode; dispid 16; + function hasChildNodes: WordBool; dispid 17; + property ownerDocument: IXMLDOMDocument readonly dispid 18; + function cloneNode(deep: WordBool): IXMLDOMNode; dispid 19; + property nodeTypeString: WideString readonly dispid 21; + property text: WideString dispid 24; + property specified: WordBool readonly dispid 22; + property definition: IXMLDOMNode readonly dispid 23; + property nodeTypedValue: OleVariant dispid 25; + function dataType: OleVariant; dispid 26; + property xml: WideString readonly dispid 27; + function transformNode(const stylesheet: IXMLDOMNode): WideString; dispid 28; + function selectNodes(const queryString: WideString): IXMLDOMNodeList; dispid 29; + function selectSingleNode(const queryString: WideString): IXMLDOMNode; dispid 30; + property parsed: WordBool readonly dispid 31; + property namespaceURI: WideString readonly dispid 32; + property prefix: WideString readonly dispid 33; + property baseName: WideString readonly dispid 34; + procedure transformNodeToObject(const stylesheet: IXMLDOMNode; outputObject: OleVariant); dispid 35; + end; + +// *********************************************************************// +// Interface: IXMLDOMCharacterData +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF84-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMCharacterData = interface(IXMLDOMNode) + ['{2933BF84-7B36-11D2-B20E-00C04F983E60}'] + function Get_data: WideString; safecall; + procedure Set_data(const data: WideString); safecall; + function Get_length: Integer; safecall; + function substringData(offset: Integer; count: Integer): WideString; safecall; + procedure appendData(const data: WideString); safecall; + procedure insertData(offset: Integer; const data: WideString); safecall; + procedure deleteData(offset: Integer; count: Integer); safecall; + procedure replaceData(offset: Integer; count: Integer; const data: WideString); safecall; + property data: WideString read Get_data write Set_data; + property length: Integer read Get_length; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMCharacterDataDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF84-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMCharacterDataDisp = dispinterface + ['{2933BF84-7B36-11D2-B20E-00C04F983E60}'] + property data: WideString dispid 109; + property length: Integer readonly dispid 110; + function substringData(offset: Integer; count: Integer): WideString; dispid 111; + procedure appendData(const data: WideString); dispid 112; + procedure insertData(offset: Integer; const data: WideString); dispid 113; + procedure deleteData(offset: Integer; count: Integer); dispid 114; + procedure replaceData(offset: Integer; count: Integer; const data: WideString); dispid 115; + property nodeName: WideString readonly dispid 2; + property nodeValue: OleVariant dispid 3; + property nodeType: DOMNodeType readonly dispid 4; + property parentNode: IXMLDOMNode readonly dispid 6; + property childNodes: IXMLDOMNodeList readonly dispid 7; + property firstChild: IXMLDOMNode readonly dispid 8; + property lastChild: IXMLDOMNode readonly dispid 9; + property previousSibling: IXMLDOMNode readonly dispid 10; + property nextSibling: IXMLDOMNode readonly dispid 11; + property attributes: IXMLDOMNamedNodeMap readonly dispid 12; + function insertBefore(const newChild: IXMLDOMNode; refChild: OleVariant): IXMLDOMNode; dispid 13; + function replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; dispid 14; + function removeChild(const childNode: IXMLDOMNode): IXMLDOMNode; dispid 15; + function appendChild(const newChild: IXMLDOMNode): IXMLDOMNode; dispid 16; + function hasChildNodes: WordBool; dispid 17; + property ownerDocument: IXMLDOMDocument readonly dispid 18; + function cloneNode(deep: WordBool): IXMLDOMNode; dispid 19; + property nodeTypeString: WideString readonly dispid 21; + property text: WideString dispid 24; + property specified: WordBool readonly dispid 22; + property definition: IXMLDOMNode readonly dispid 23; + property nodeTypedValue: OleVariant dispid 25; + function dataType: OleVariant; dispid 26; + property xml: WideString readonly dispid 27; + function transformNode(const stylesheet: IXMLDOMNode): WideString; dispid 28; + function selectNodes(const queryString: WideString): IXMLDOMNodeList; dispid 29; + function selectSingleNode(const queryString: WideString): IXMLDOMNode; dispid 30; + property parsed: WordBool readonly dispid 31; + property namespaceURI: WideString readonly dispid 32; + property prefix: WideString readonly dispid 33; + property baseName: WideString readonly dispid 34; + procedure transformNodeToObject(const stylesheet: IXMLDOMNode; outputObject: OleVariant); dispid 35; + end; + +// *********************************************************************// +// Interface: IXMLDOMText +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF87-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMText = interface(IXMLDOMCharacterData) + ['{2933BF87-7B36-11D2-B20E-00C04F983E60}'] + procedure GhostMethod_IXMLDOMText_0_1; safecall; + procedure GhostMethod_IXMLDOMText_4_2; safecall; + procedure GhostMethod_IXMLDOMText_8_3; safecall; + procedure GhostMethod_IXMLDOMText_12_4; safecall; + procedure GhostMethod_IXMLDOMText_16_5; safecall; + procedure GhostMethod_IXMLDOMText_20_6; safecall; + procedure GhostMethod_IXMLDOMText_24_7; safecall; + procedure GhostMethod_IXMLDOMText_28_8; safecall; + procedure GhostMethod_IXMLDOMText_32_9; safecall; + procedure GhostMethod_IXMLDOMText_36_10; safecall; + procedure GhostMethod_IXMLDOMText_40_11; safecall; + procedure GhostMethod_IXMLDOMText_44_12; safecall; + procedure GhostMethod_IXMLDOMText_48_13; safecall; + procedure GhostMethod_IXMLDOMText_52_14; safecall; + procedure GhostMethod_IXMLDOMText_56_15; safecall; + procedure GhostMethod_IXMLDOMText_60_16; safecall; + procedure GhostMethod_IXMLDOMText_64_17; safecall; + procedure GhostMethod_IXMLDOMText_68_18; safecall; + procedure GhostMethod_IXMLDOMText_72_19; safecall; + procedure GhostMethod_IXMLDOMText_76_20; safecall; + procedure GhostMethod_IXMLDOMText_80_21; safecall; + procedure GhostMethod_IXMLDOMText_84_22; safecall; + procedure GhostMethod_IXMLDOMText_88_23; safecall; + procedure GhostMethod_IXMLDOMText_92_24; safecall; + procedure GhostMethod_IXMLDOMText_96_25; safecall; + procedure GhostMethod_IXMLDOMText_100_26; safecall; + procedure GhostMethod_IXMLDOMText_104_27; safecall; + procedure GhostMethod_IXMLDOMText_108_28; safecall; + procedure GhostMethod_IXMLDOMText_112_29; safecall; + procedure GhostMethod_IXMLDOMText_116_30; safecall; + procedure GhostMethod_IXMLDOMText_120_31; safecall; + procedure GhostMethod_IXMLDOMText_124_32; safecall; + procedure GhostMethod_IXMLDOMText_128_33; safecall; + procedure GhostMethod_IXMLDOMText_132_34; safecall; + procedure GhostMethod_IXMLDOMText_136_35; safecall; + procedure GhostMethod_IXMLDOMText_140_36; safecall; + procedure GhostMethod_IXMLDOMText_144_37; safecall; + procedure GhostMethod_IXMLDOMText_148_38; safecall; + procedure GhostMethod_IXMLDOMText_152_39; safecall; + procedure GhostMethod_IXMLDOMText_156_40; safecall; + procedure GhostMethod_IXMLDOMText_160_41; safecall; + procedure GhostMethod_IXMLDOMText_164_42; safecall; + procedure GhostMethod_IXMLDOMText_168_43; safecall; + procedure GhostMethod_IXMLDOMText_172_44; safecall; + procedure GhostMethod_IXMLDOMText_176_45; safecall; + procedure GhostMethod_IXMLDOMText_180_46; safecall; + procedure GhostMethod_IXMLDOMText_184_47; safecall; + procedure GhostMethod_IXMLDOMText_188_48; safecall; + procedure GhostMethod_IXMLDOMText_192_49; safecall; + procedure GhostMethod_IXMLDOMText_196_50; safecall; + procedure GhostMethod_IXMLDOMText_200_51; safecall; + function splitText(offset: Integer): IXMLDOMText; safecall; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMTextDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF87-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMTextDisp = dispinterface + ['{2933BF87-7B36-11D2-B20E-00C04F983E60}'] + procedure GhostMethod_IXMLDOMText_0_1; dispid 1610678272; + procedure GhostMethod_IXMLDOMText_4_2; dispid 1610678273; + procedure GhostMethod_IXMLDOMText_8_3; dispid 1610678274; + procedure GhostMethod_IXMLDOMText_12_4; dispid 1610678275; + procedure GhostMethod_IXMLDOMText_16_5; dispid 1610678276; + procedure GhostMethod_IXMLDOMText_20_6; dispid 1610678277; + procedure GhostMethod_IXMLDOMText_24_7; dispid 1610678278; + procedure GhostMethod_IXMLDOMText_28_8; dispid 1610678279; + procedure GhostMethod_IXMLDOMText_32_9; dispid 1610678280; + procedure GhostMethod_IXMLDOMText_36_10; dispid 1610678281; + procedure GhostMethod_IXMLDOMText_40_11; dispid 1610678282; + procedure GhostMethod_IXMLDOMText_44_12; dispid 1610678283; + procedure GhostMethod_IXMLDOMText_48_13; dispid 1610678284; + procedure GhostMethod_IXMLDOMText_52_14; dispid 1610678285; + procedure GhostMethod_IXMLDOMText_56_15; dispid 1610678286; + procedure GhostMethod_IXMLDOMText_60_16; dispid 1610678287; + procedure GhostMethod_IXMLDOMText_64_17; dispid 1610678288; + procedure GhostMethod_IXMLDOMText_68_18; dispid 1610678289; + procedure GhostMethod_IXMLDOMText_72_19; dispid 1610678290; + procedure GhostMethod_IXMLDOMText_76_20; dispid 1610678291; + procedure GhostMethod_IXMLDOMText_80_21; dispid 1610678292; + procedure GhostMethod_IXMLDOMText_84_22; dispid 1610678293; + procedure GhostMethod_IXMLDOMText_88_23; dispid 1610678294; + procedure GhostMethod_IXMLDOMText_92_24; dispid 1610678295; + procedure GhostMethod_IXMLDOMText_96_25; dispid 1610678296; + procedure GhostMethod_IXMLDOMText_100_26; dispid 1610678297; + procedure GhostMethod_IXMLDOMText_104_27; dispid 1610678298; + procedure GhostMethod_IXMLDOMText_108_28; dispid 1610678299; + procedure GhostMethod_IXMLDOMText_112_29; dispid 1610678300; + procedure GhostMethod_IXMLDOMText_116_30; dispid 1610678301; + procedure GhostMethod_IXMLDOMText_120_31; dispid 1610678302; + procedure GhostMethod_IXMLDOMText_124_32; dispid 1610678303; + procedure GhostMethod_IXMLDOMText_128_33; dispid 1610678304; + procedure GhostMethod_IXMLDOMText_132_34; dispid 1610678305; + procedure GhostMethod_IXMLDOMText_136_35; dispid 1610678306; + procedure GhostMethod_IXMLDOMText_140_36; dispid 1610678307; + procedure GhostMethod_IXMLDOMText_144_37; dispid 1610678308; + procedure GhostMethod_IXMLDOMText_148_38; dispid 1610678309; + procedure GhostMethod_IXMLDOMText_152_39; dispid 1610678310; + procedure GhostMethod_IXMLDOMText_156_40; dispid 1610678311; + procedure GhostMethod_IXMLDOMText_160_41; dispid 1610678312; + procedure GhostMethod_IXMLDOMText_164_42; dispid 1610678313; + procedure GhostMethod_IXMLDOMText_168_43; dispid 1610678314; + procedure GhostMethod_IXMLDOMText_172_44; dispid 1610678315; + procedure GhostMethod_IXMLDOMText_176_45; dispid 1610678316; + procedure GhostMethod_IXMLDOMText_180_46; dispid 1610678317; + procedure GhostMethod_IXMLDOMText_184_47; dispid 1610678318; + procedure GhostMethod_IXMLDOMText_188_48; dispid 1610678319; + procedure GhostMethod_IXMLDOMText_192_49; dispid 1610678320; + procedure GhostMethod_IXMLDOMText_196_50; dispid 1610678321; + procedure GhostMethod_IXMLDOMText_200_51; dispid 1610678322; + function splitText(offset: Integer): IXMLDOMText; dispid 123; + property data: WideString dispid 109; + property length: Integer readonly dispid 110; + function substringData(offset: Integer; count: Integer): WideString; dispid 111; + procedure appendData(const data: WideString); dispid 112; + procedure insertData(offset: Integer; const data: WideString); dispid 113; + procedure deleteData(offset: Integer; count: Integer); dispid 114; + procedure replaceData(offset: Integer; count: Integer; const data: WideString); dispid 115; + property nodeName: WideString readonly dispid 2; + property nodeValue: OleVariant dispid 3; + property nodeType: DOMNodeType readonly dispid 4; + property parentNode: IXMLDOMNode readonly dispid 6; + property childNodes: IXMLDOMNodeList readonly dispid 7; + property firstChild: IXMLDOMNode readonly dispid 8; + property lastChild: IXMLDOMNode readonly dispid 9; + property previousSibling: IXMLDOMNode readonly dispid 10; + property nextSibling: IXMLDOMNode readonly dispid 11; + property attributes: IXMLDOMNamedNodeMap readonly dispid 12; + function insertBefore(const newChild: IXMLDOMNode; refChild: OleVariant): IXMLDOMNode; dispid 13; + function replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; dispid 14; + function removeChild(const childNode: IXMLDOMNode): IXMLDOMNode; dispid 15; + function appendChild(const newChild: IXMLDOMNode): IXMLDOMNode; dispid 16; + function hasChildNodes: WordBool; dispid 17; + property ownerDocument: IXMLDOMDocument readonly dispid 18; + function cloneNode(deep: WordBool): IXMLDOMNode; dispid 19; + property nodeTypeString: WideString readonly dispid 21; + property text: WideString dispid 24; + property specified: WordBool readonly dispid 22; + property definition: IXMLDOMNode readonly dispid 23; + property nodeTypedValue: OleVariant dispid 25; + function dataType: OleVariant; dispid 26; + property xml: WideString readonly dispid 27; + function transformNode(const stylesheet: IXMLDOMNode): WideString; dispid 28; + function selectNodes(const queryString: WideString): IXMLDOMNodeList; dispid 29; + function selectSingleNode(const queryString: WideString): IXMLDOMNode; dispid 30; + property parsed: WordBool readonly dispid 31; + property namespaceURI: WideString readonly dispid 32; + property prefix: WideString readonly dispid 33; + property baseName: WideString readonly dispid 34; + procedure transformNodeToObject(const stylesheet: IXMLDOMNode; outputObject: OleVariant); dispid 35; + end; + +// *********************************************************************// +// Interface: IXMLDOMComment +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF88-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMComment = interface(IXMLDOMCharacterData) + ['{2933BF88-7B36-11D2-B20E-00C04F983E60}'] + end; + +// *********************************************************************// +// DispIntf: IXMLDOMCommentDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF88-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMCommentDisp = dispinterface + ['{2933BF88-7B36-11D2-B20E-00C04F983E60}'] + property data: WideString dispid 109; + property length: Integer readonly dispid 110; + function substringData(offset: Integer; count: Integer): WideString; dispid 111; + procedure appendData(const data: WideString); dispid 112; + procedure insertData(offset: Integer; const data: WideString); dispid 113; + procedure deleteData(offset: Integer; count: Integer); dispid 114; + procedure replaceData(offset: Integer; count: Integer; const data: WideString); dispid 115; + property nodeName: WideString readonly dispid 2; + property nodeValue: OleVariant dispid 3; + property nodeType: DOMNodeType readonly dispid 4; + property parentNode: IXMLDOMNode readonly dispid 6; + property childNodes: IXMLDOMNodeList readonly dispid 7; + property firstChild: IXMLDOMNode readonly dispid 8; + property lastChild: IXMLDOMNode readonly dispid 9; + property previousSibling: IXMLDOMNode readonly dispid 10; + property nextSibling: IXMLDOMNode readonly dispid 11; + property attributes: IXMLDOMNamedNodeMap readonly dispid 12; + function insertBefore(const newChild: IXMLDOMNode; refChild: OleVariant): IXMLDOMNode; dispid 13; + function replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; dispid 14; + function removeChild(const childNode: IXMLDOMNode): IXMLDOMNode; dispid 15; + function appendChild(const newChild: IXMLDOMNode): IXMLDOMNode; dispid 16; + function hasChildNodes: WordBool; dispid 17; + property ownerDocument: IXMLDOMDocument readonly dispid 18; + function cloneNode(deep: WordBool): IXMLDOMNode; dispid 19; + property nodeTypeString: WideString readonly dispid 21; + property text: WideString dispid 24; + property specified: WordBool readonly dispid 22; + property definition: IXMLDOMNode readonly dispid 23; + property nodeTypedValue: OleVariant dispid 25; + function dataType: OleVariant; dispid 26; + property xml: WideString readonly dispid 27; + function transformNode(const stylesheet: IXMLDOMNode): WideString; dispid 28; + function selectNodes(const queryString: WideString): IXMLDOMNodeList; dispid 29; + function selectSingleNode(const queryString: WideString): IXMLDOMNode; dispid 30; + property parsed: WordBool readonly dispid 31; + property namespaceURI: WideString readonly dispid 32; + property prefix: WideString readonly dispid 33; + property baseName: WideString readonly dispid 34; + procedure transformNodeToObject(const stylesheet: IXMLDOMNode; outputObject: OleVariant); dispid 35; + end; + +// *********************************************************************// +// Interface: IXMLDOMCDATASection +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF8A-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMCDATASection = interface(IXMLDOMText) + ['{2933BF8A-7B36-11D2-B20E-00C04F983E60}'] + end; + +// *********************************************************************// +// DispIntf: IXMLDOMCDATASectionDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF8A-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMCDATASectionDisp = dispinterface + ['{2933BF8A-7B36-11D2-B20E-00C04F983E60}'] + procedure GhostMethod_IXMLDOMText_0_1; dispid 1610678272; + procedure GhostMethod_IXMLDOMText_4_2; dispid 1610678273; + procedure GhostMethod_IXMLDOMText_8_3; dispid 1610678274; + procedure GhostMethod_IXMLDOMText_12_4; dispid 1610678275; + procedure GhostMethod_IXMLDOMText_16_5; dispid 1610678276; + procedure GhostMethod_IXMLDOMText_20_6; dispid 1610678277; + procedure GhostMethod_IXMLDOMText_24_7; dispid 1610678278; + procedure GhostMethod_IXMLDOMText_28_8; dispid 1610678279; + procedure GhostMethod_IXMLDOMText_32_9; dispid 1610678280; + procedure GhostMethod_IXMLDOMText_36_10; dispid 1610678281; + procedure GhostMethod_IXMLDOMText_40_11; dispid 1610678282; + procedure GhostMethod_IXMLDOMText_44_12; dispid 1610678283; + procedure GhostMethod_IXMLDOMText_48_13; dispid 1610678284; + procedure GhostMethod_IXMLDOMText_52_14; dispid 1610678285; + procedure GhostMethod_IXMLDOMText_56_15; dispid 1610678286; + procedure GhostMethod_IXMLDOMText_60_16; dispid 1610678287; + procedure GhostMethod_IXMLDOMText_64_17; dispid 1610678288; + procedure GhostMethod_IXMLDOMText_68_18; dispid 1610678289; + procedure GhostMethod_IXMLDOMText_72_19; dispid 1610678290; + procedure GhostMethod_IXMLDOMText_76_20; dispid 1610678291; + procedure GhostMethod_IXMLDOMText_80_21; dispid 1610678292; + procedure GhostMethod_IXMLDOMText_84_22; dispid 1610678293; + procedure GhostMethod_IXMLDOMText_88_23; dispid 1610678294; + procedure GhostMethod_IXMLDOMText_92_24; dispid 1610678295; + procedure GhostMethod_IXMLDOMText_96_25; dispid 1610678296; + procedure GhostMethod_IXMLDOMText_100_26; dispid 1610678297; + procedure GhostMethod_IXMLDOMText_104_27; dispid 1610678298; + procedure GhostMethod_IXMLDOMText_108_28; dispid 1610678299; + procedure GhostMethod_IXMLDOMText_112_29; dispid 1610678300; + procedure GhostMethod_IXMLDOMText_116_30; dispid 1610678301; + procedure GhostMethod_IXMLDOMText_120_31; dispid 1610678302; + procedure GhostMethod_IXMLDOMText_124_32; dispid 1610678303; + procedure GhostMethod_IXMLDOMText_128_33; dispid 1610678304; + procedure GhostMethod_IXMLDOMText_132_34; dispid 1610678305; + procedure GhostMethod_IXMLDOMText_136_35; dispid 1610678306; + procedure GhostMethod_IXMLDOMText_140_36; dispid 1610678307; + procedure GhostMethod_IXMLDOMText_144_37; dispid 1610678308; + procedure GhostMethod_IXMLDOMText_148_38; dispid 1610678309; + procedure GhostMethod_IXMLDOMText_152_39; dispid 1610678310; + procedure GhostMethod_IXMLDOMText_156_40; dispid 1610678311; + procedure GhostMethod_IXMLDOMText_160_41; dispid 1610678312; + procedure GhostMethod_IXMLDOMText_164_42; dispid 1610678313; + procedure GhostMethod_IXMLDOMText_168_43; dispid 1610678314; + procedure GhostMethod_IXMLDOMText_172_44; dispid 1610678315; + procedure GhostMethod_IXMLDOMText_176_45; dispid 1610678316; + procedure GhostMethod_IXMLDOMText_180_46; dispid 1610678317; + procedure GhostMethod_IXMLDOMText_184_47; dispid 1610678318; + procedure GhostMethod_IXMLDOMText_188_48; dispid 1610678319; + procedure GhostMethod_IXMLDOMText_192_49; dispid 1610678320; + procedure GhostMethod_IXMLDOMText_196_50; dispid 1610678321; + procedure GhostMethod_IXMLDOMText_200_51; dispid 1610678322; + function splitText(offset: Integer): IXMLDOMText; dispid 123; + property data: WideString dispid 109; + property length: Integer readonly dispid 110; + function substringData(offset: Integer; count: Integer): WideString; dispid 111; + procedure appendData(const data: WideString); dispid 112; + procedure insertData(offset: Integer; const data: WideString); dispid 113; + procedure deleteData(offset: Integer; count: Integer); dispid 114; + procedure replaceData(offset: Integer; count: Integer; const data: WideString); dispid 115; + property nodeName: WideString readonly dispid 2; + property nodeValue: OleVariant dispid 3; + property nodeType: DOMNodeType readonly dispid 4; + property parentNode: IXMLDOMNode readonly dispid 6; + property childNodes: IXMLDOMNodeList readonly dispid 7; + property firstChild: IXMLDOMNode readonly dispid 8; + property lastChild: IXMLDOMNode readonly dispid 9; + property previousSibling: IXMLDOMNode readonly dispid 10; + property nextSibling: IXMLDOMNode readonly dispid 11; + property attributes: IXMLDOMNamedNodeMap readonly dispid 12; + function insertBefore(const newChild: IXMLDOMNode; refChild: OleVariant): IXMLDOMNode; dispid 13; + function replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; dispid 14; + function removeChild(const childNode: IXMLDOMNode): IXMLDOMNode; dispid 15; + function appendChild(const newChild: IXMLDOMNode): IXMLDOMNode; dispid 16; + function hasChildNodes: WordBool; dispid 17; + property ownerDocument: IXMLDOMDocument readonly dispid 18; + function cloneNode(deep: WordBool): IXMLDOMNode; dispid 19; + property nodeTypeString: WideString readonly dispid 21; + property text: WideString dispid 24; + property specified: WordBool readonly dispid 22; + property definition: IXMLDOMNode readonly dispid 23; + property nodeTypedValue: OleVariant dispid 25; + function dataType: OleVariant; dispid 26; + property xml: WideString readonly dispid 27; + function transformNode(const stylesheet: IXMLDOMNode): WideString; dispid 28; + function selectNodes(const queryString: WideString): IXMLDOMNodeList; dispid 29; + function selectSingleNode(const queryString: WideString): IXMLDOMNode; dispid 30; + property parsed: WordBool readonly dispid 31; + property namespaceURI: WideString readonly dispid 32; + property prefix: WideString readonly dispid 33; + property baseName: WideString readonly dispid 34; + procedure transformNodeToObject(const stylesheet: IXMLDOMNode; outputObject: OleVariant); dispid 35; + end; + +// *********************************************************************// +// Interface: IXMLDOMProcessingInstruction +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF89-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMProcessingInstruction = interface(IXMLDOMNode) + ['{2933BF89-7B36-11D2-B20E-00C04F983E60}'] + function Get_target: WideString; safecall; + function Get_data: WideString; safecall; + procedure Set_data(const value: WideString); safecall; + property target: WideString read Get_target; + property data: WideString read Get_data write Set_data; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMProcessingInstructionDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF89-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMProcessingInstructionDisp = dispinterface + ['{2933BF89-7B36-11D2-B20E-00C04F983E60}'] + property target: WideString readonly dispid 127; + property data: WideString dispid 128; + property nodeName: WideString readonly dispid 2; + property nodeValue: OleVariant dispid 3; + property nodeType: DOMNodeType readonly dispid 4; + property parentNode: IXMLDOMNode readonly dispid 6; + property childNodes: IXMLDOMNodeList readonly dispid 7; + property firstChild: IXMLDOMNode readonly dispid 8; + property lastChild: IXMLDOMNode readonly dispid 9; + property previousSibling: IXMLDOMNode readonly dispid 10; + property nextSibling: IXMLDOMNode readonly dispid 11; + property attributes: IXMLDOMNamedNodeMap readonly dispid 12; + function insertBefore(const newChild: IXMLDOMNode; refChild: OleVariant): IXMLDOMNode; dispid 13; + function replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; dispid 14; + function removeChild(const childNode: IXMLDOMNode): IXMLDOMNode; dispid 15; + function appendChild(const newChild: IXMLDOMNode): IXMLDOMNode; dispid 16; + function hasChildNodes: WordBool; dispid 17; + property ownerDocument: IXMLDOMDocument readonly dispid 18; + function cloneNode(deep: WordBool): IXMLDOMNode; dispid 19; + property nodeTypeString: WideString readonly dispid 21; + property text: WideString dispid 24; + property specified: WordBool readonly dispid 22; + property definition: IXMLDOMNode readonly dispid 23; + property nodeTypedValue: OleVariant dispid 25; + function dataType: OleVariant; dispid 26; + property xml: WideString readonly dispid 27; + function transformNode(const stylesheet: IXMLDOMNode): WideString; dispid 28; + function selectNodes(const queryString: WideString): IXMLDOMNodeList; dispid 29; + function selectSingleNode(const queryString: WideString): IXMLDOMNode; dispid 30; + property parsed: WordBool readonly dispid 31; + property namespaceURI: WideString readonly dispid 32; + property prefix: WideString readonly dispid 33; + property baseName: WideString readonly dispid 34; + procedure transformNodeToObject(const stylesheet: IXMLDOMNode; outputObject: OleVariant); dispid 35; + end; + +// *********************************************************************// +// Interface: IXMLDOMEntityReference +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF8E-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMEntityReference = interface(IXMLDOMNode) + ['{2933BF8E-7B36-11D2-B20E-00C04F983E60}'] + end; + +// *********************************************************************// +// DispIntf: IXMLDOMEntityReferenceDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF8E-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMEntityReferenceDisp = dispinterface + ['{2933BF8E-7B36-11D2-B20E-00C04F983E60}'] + property nodeName: WideString readonly dispid 2; + property nodeValue: OleVariant dispid 3; + property nodeType: DOMNodeType readonly dispid 4; + property parentNode: IXMLDOMNode readonly dispid 6; + property childNodes: IXMLDOMNodeList readonly dispid 7; + property firstChild: IXMLDOMNode readonly dispid 8; + property lastChild: IXMLDOMNode readonly dispid 9; + property previousSibling: IXMLDOMNode readonly dispid 10; + property nextSibling: IXMLDOMNode readonly dispid 11; + property attributes: IXMLDOMNamedNodeMap readonly dispid 12; + function insertBefore(const newChild: IXMLDOMNode; refChild: OleVariant): IXMLDOMNode; dispid 13; + function replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; dispid 14; + function removeChild(const childNode: IXMLDOMNode): IXMLDOMNode; dispid 15; + function appendChild(const newChild: IXMLDOMNode): IXMLDOMNode; dispid 16; + function hasChildNodes: WordBool; dispid 17; + property ownerDocument: IXMLDOMDocument readonly dispid 18; + function cloneNode(deep: WordBool): IXMLDOMNode; dispid 19; + property nodeTypeString: WideString readonly dispid 21; + property text: WideString dispid 24; + property specified: WordBool readonly dispid 22; + property definition: IXMLDOMNode readonly dispid 23; + property nodeTypedValue: OleVariant dispid 25; + function dataType: OleVariant; dispid 26; + property xml: WideString readonly dispid 27; + function transformNode(const stylesheet: IXMLDOMNode): WideString; dispid 28; + function selectNodes(const queryString: WideString): IXMLDOMNodeList; dispid 29; + function selectSingleNode(const queryString: WideString): IXMLDOMNode; dispid 30; + property parsed: WordBool readonly dispid 31; + property namespaceURI: WideString readonly dispid 32; + property prefix: WideString readonly dispid 33; + property baseName: WideString readonly dispid 34; + procedure transformNodeToObject(const stylesheet: IXMLDOMNode; outputObject: OleVariant); dispid 35; + end; + +// *********************************************************************// +// Interface: IXMLDOMParseError +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {3EFAA426-272F-11D2-836F-0000F87A7782} +// *********************************************************************// + IXMLDOMParseError = interface(IDispatch) + ['{3EFAA426-272F-11D2-836F-0000F87A7782}'] + function Get_errorCode: Integer; safecall; + function Get_url: WideString; safecall; + function Get_reason: WideString; safecall; + function Get_srcText: WideString; safecall; + function Get_line: Integer; safecall; + function Get_linepos: Integer; safecall; + function Get_filepos: Integer; safecall; + property errorCode: Integer read Get_errorCode; + property url: WideString read Get_url; + property reason: WideString read Get_reason; + property srcText: WideString read Get_srcText; + property line: Integer read Get_line; + property linepos: Integer read Get_linepos; + property filepos: Integer read Get_filepos; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMParseErrorDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {3EFAA426-272F-11D2-836F-0000F87A7782} +// *********************************************************************// + IXMLDOMParseErrorDisp = dispinterface + ['{3EFAA426-272F-11D2-836F-0000F87A7782}'] + property errorCode: Integer readonly dispid 0; + property url: WideString readonly dispid 179; + property reason: WideString readonly dispid 180; + property srcText: WideString readonly dispid 181; + property line: Integer readonly dispid 182; + property linepos: Integer readonly dispid 183; + property filepos: Integer readonly dispid 184; + end; + +// *********************************************************************// +// Interface: IXMLDOMDocument2 +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF95-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMDocument2 = interface(IXMLDOMDocument) + ['{2933BF95-7B36-11D2-B20E-00C04F983E60}'] + function Get_namespaces: IXMLDOMSchemaCollection; safecall; + function Get_schemas: OleVariant; safecall; + procedure _Set_schemas(otherCollection: OleVariant); safecall; + function validate: IXMLDOMParseError; safecall; + procedure setProperty(const name: WideString; value: OleVariant); safecall; + function getProperty(const name: WideString): OleVariant; safecall; + property namespaces: IXMLDOMSchemaCollection read Get_namespaces; + property schemas: OleVariant read Get_schemas write _Set_schemas; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMDocument2Disp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF95-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMDocument2Disp = dispinterface + ['{2933BF95-7B36-11D2-B20E-00C04F983E60}'] + property namespaces: IXMLDOMSchemaCollection readonly dispid 201; + property schemas: OleVariant dispid 202; + function validate: IXMLDOMParseError; dispid 203; + procedure setProperty(const name: WideString; value: OleVariant); dispid 204; + function getProperty(const name: WideString): OleVariant; dispid 205; + property doctype: IXMLDOMDocumentType readonly dispid 38; + property implementation_: IXMLDOMImplementation readonly dispid 39; + property documentElement: IXMLDOMElement dispid 40; + function createElement(const tagName: WideString): IXMLDOMElement; dispid 41; + function createDocumentFragment: IXMLDOMDocumentFragment; dispid 42; + function createTextNode(const data: WideString): IXMLDOMText; dispid 43; + function createComment(const data: WideString): IXMLDOMComment; dispid 44; + function createCDATASection(const data: WideString): IXMLDOMCDATASection; dispid 45; + function createProcessingInstruction(const target: WideString; const data: WideString): IXMLDOMProcessingInstruction; dispid 46; + function createAttribute(const name: WideString): IXMLDOMAttribute; dispid 47; + function createEntityReference(const name: WideString): IXMLDOMEntityReference; dispid 49; + function getElementsByTagName(const tagName: WideString): IXMLDOMNodeList; dispid 50; + function createNode(type_: OleVariant; const name: WideString; const namespaceURI: WideString): IXMLDOMNode; dispid 54; + function nodeFromID(const idString: WideString): IXMLDOMNode; dispid 56; + function load(xmlSource: OleVariant): WordBool; dispid 58; + property readyState: Integer readonly dispid -525; + property parseError: IXMLDOMParseError readonly dispid 59; + property url: WideString readonly dispid 60; + property async: WordBool dispid 61; + procedure abort; dispid 62; + function loadXML(const bstrXML: WideString): WordBool; dispid 63; + procedure save(destination: OleVariant); dispid 64; + property validateOnParse: WordBool dispid 65; + property resolveExternals: WordBool dispid 66; + property preserveWhiteSpace: WordBool dispid 67; + property onreadystatechange: OleVariant writeonly dispid 68; + property ondataavailable: OleVariant writeonly dispid 69; + property ontransformnode: OleVariant writeonly dispid 70; + property nodeName: WideString readonly dispid 2; + property nodeValue: OleVariant dispid 3; + property nodeType: DOMNodeType readonly dispid 4; + property parentNode: IXMLDOMNode readonly dispid 6; + property childNodes: IXMLDOMNodeList readonly dispid 7; + property firstChild: IXMLDOMNode readonly dispid 8; + property lastChild: IXMLDOMNode readonly dispid 9; + property previousSibling: IXMLDOMNode readonly dispid 10; + property nextSibling: IXMLDOMNode readonly dispid 11; + property attributes: IXMLDOMNamedNodeMap readonly dispid 12; + function insertBefore(const newChild: IXMLDOMNode; refChild: OleVariant): IXMLDOMNode; dispid 13; + function replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; dispid 14; + function removeChild(const childNode: IXMLDOMNode): IXMLDOMNode; dispid 15; + function appendChild(const newChild: IXMLDOMNode): IXMLDOMNode; dispid 16; + function hasChildNodes: WordBool; dispid 17; + property ownerDocument: IXMLDOMDocument readonly dispid 18; + function cloneNode(deep: WordBool): IXMLDOMNode; dispid 19; + property nodeTypeString: WideString readonly dispid 21; + property text: WideString dispid 24; + property specified: WordBool readonly dispid 22; + property definition: IXMLDOMNode readonly dispid 23; + property nodeTypedValue: OleVariant dispid 25; + function dataType: OleVariant; dispid 26; + property xml: WideString readonly dispid 27; + function transformNode(const stylesheet: IXMLDOMNode): WideString; dispid 28; + function selectNodes(const queryString: WideString): IXMLDOMNodeList; dispid 29; + function selectSingleNode(const queryString: WideString): IXMLDOMNode; dispid 30; + property parsed: WordBool readonly dispid 31; + property namespaceURI: WideString readonly dispid 32; + property prefix: WideString readonly dispid 33; + property baseName: WideString readonly dispid 34; + procedure transformNodeToObject(const stylesheet: IXMLDOMNode; outputObject: OleVariant); dispid 35; + end; + +// *********************************************************************// +// Interface: IXMLDOMSchemaCollection +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {373984C8-B845-449B-91E7-45AC83036ADE} +// *********************************************************************// + IXMLDOMSchemaCollection = interface(IDispatch) + ['{373984C8-B845-449B-91E7-45AC83036ADE}'] + procedure add(const namespaceURI: WideString; var_: OleVariant); safecall; + function get(const namespaceURI: WideString): IXMLDOMNode; safecall; + procedure remove(const namespaceURI: WideString); safecall; + function Get_length: Integer; safecall; + function Get_namespaceURI(index: Integer): WideString; safecall; + procedure addCollection(const otherCollection: IXMLDOMSchemaCollection); safecall; + function Get__newEnum: IUnknown; safecall; + property length: Integer read Get_length; + property namespaceURI[index: Integer]: WideString read Get_namespaceURI; default; + property _newEnum: IUnknown read Get__newEnum; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMSchemaCollectionDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {373984C8-B845-449B-91E7-45AC83036ADE} +// *********************************************************************// + IXMLDOMSchemaCollectionDisp = dispinterface + ['{373984C8-B845-449B-91E7-45AC83036ADE}'] + procedure add(const namespaceURI: WideString; var_: OleVariant); dispid 3; + function get(const namespaceURI: WideString): IXMLDOMNode; dispid 4; + procedure remove(const namespaceURI: WideString); dispid 5; + property length: Integer readonly dispid 6; + property namespaceURI[index: Integer]: WideString readonly dispid 0; default; + procedure addCollection(const otherCollection: IXMLDOMSchemaCollection); dispid 8; + property _newEnum: IUnknown readonly dispid -4; + end; + +// *********************************************************************// +// Interface: IXMLDOMDocument3 +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF96-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMDocument3 = interface(IXMLDOMDocument2) + ['{2933BF96-7B36-11D2-B20E-00C04F983E60}'] + function validateNode(const node: IXMLDOMNode): IXMLDOMParseError; safecall; + function importNode(const node: IXMLDOMNode; deep: WordBool): IXMLDOMNode; safecall; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMDocument3Disp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF96-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMDocument3Disp = dispinterface + ['{2933BF96-7B36-11D2-B20E-00C04F983E60}'] + function validateNode(const node: IXMLDOMNode): IXMLDOMParseError; dispid 208; + function importNode(const node: IXMLDOMNode; deep: WordBool): IXMLDOMNode; dispid 209; + property namespaces: IXMLDOMSchemaCollection readonly dispid 201; + property schemas: OleVariant dispid 202; + function validate: IXMLDOMParseError; dispid 203; + procedure setProperty(const name: WideString; value: OleVariant); dispid 204; + function getProperty(const name: WideString): OleVariant; dispid 205; + property doctype: IXMLDOMDocumentType readonly dispid 38; + property implementation_: IXMLDOMImplementation readonly dispid 39; + property documentElement: IXMLDOMElement dispid 40; + function createElement(const tagName: WideString): IXMLDOMElement; dispid 41; + function createDocumentFragment: IXMLDOMDocumentFragment; dispid 42; + function createTextNode(const data: WideString): IXMLDOMText; dispid 43; + function createComment(const data: WideString): IXMLDOMComment; dispid 44; + function createCDATASection(const data: WideString): IXMLDOMCDATASection; dispid 45; + function createProcessingInstruction(const target: WideString; const data: WideString): IXMLDOMProcessingInstruction; dispid 46; + function createAttribute(const name: WideString): IXMLDOMAttribute; dispid 47; + function createEntityReference(const name: WideString): IXMLDOMEntityReference; dispid 49; + function getElementsByTagName(const tagName: WideString): IXMLDOMNodeList; dispid 50; + function createNode(type_: OleVariant; const name: WideString; const namespaceURI: WideString): IXMLDOMNode; dispid 54; + function nodeFromID(const idString: WideString): IXMLDOMNode; dispid 56; + function load(xmlSource: OleVariant): WordBool; dispid 58; + property readyState: Integer readonly dispid -525; + property parseError: IXMLDOMParseError readonly dispid 59; + property url: WideString readonly dispid 60; + property async: WordBool dispid 61; + procedure abort; dispid 62; + function loadXML(const bstrXML: WideString): WordBool; dispid 63; + procedure save(destination: OleVariant); dispid 64; + property validateOnParse: WordBool dispid 65; + property resolveExternals: WordBool dispid 66; + property preserveWhiteSpace: WordBool dispid 67; + property onreadystatechange: OleVariant writeonly dispid 68; + property ondataavailable: OleVariant writeonly dispid 69; + property ontransformnode: OleVariant writeonly dispid 70; + property nodeName: WideString readonly dispid 2; + property nodeValue: OleVariant dispid 3; + property nodeType: DOMNodeType readonly dispid 4; + property parentNode: IXMLDOMNode readonly dispid 6; + property childNodes: IXMLDOMNodeList readonly dispid 7; + property firstChild: IXMLDOMNode readonly dispid 8; + property lastChild: IXMLDOMNode readonly dispid 9; + property previousSibling: IXMLDOMNode readonly dispid 10; + property nextSibling: IXMLDOMNode readonly dispid 11; + property attributes: IXMLDOMNamedNodeMap readonly dispid 12; + function insertBefore(const newChild: IXMLDOMNode; refChild: OleVariant): IXMLDOMNode; dispid 13; + function replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; dispid 14; + function removeChild(const childNode: IXMLDOMNode): IXMLDOMNode; dispid 15; + function appendChild(const newChild: IXMLDOMNode): IXMLDOMNode; dispid 16; + function hasChildNodes: WordBool; dispid 17; + property ownerDocument: IXMLDOMDocument readonly dispid 18; + function cloneNode(deep: WordBool): IXMLDOMNode; dispid 19; + property nodeTypeString: WideString readonly dispid 21; + property text: WideString dispid 24; + property specified: WordBool readonly dispid 22; + property definition: IXMLDOMNode readonly dispid 23; + property nodeTypedValue: OleVariant dispid 25; + function dataType: OleVariant; dispid 26; + property xml: WideString readonly dispid 27; + function transformNode(const stylesheet: IXMLDOMNode): WideString; dispid 28; + function selectNodes(const queryString: WideString): IXMLDOMNodeList; dispid 29; + function selectSingleNode(const queryString: WideString): IXMLDOMNode; dispid 30; + property parsed: WordBool readonly dispid 31; + property namespaceURI: WideString readonly dispid 32; + property prefix: WideString readonly dispid 33; + property baseName: WideString readonly dispid 34; + procedure transformNodeToObject(const stylesheet: IXMLDOMNode; outputObject: OleVariant); dispid 35; + end; + +// *********************************************************************// +// Interface: IXMLDOMNotation +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF8C-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMNotation = interface(IXMLDOMNode) + ['{2933BF8C-7B36-11D2-B20E-00C04F983E60}'] + function Get_publicId: OleVariant; safecall; + function Get_systemId: OleVariant; safecall; + property publicId: OleVariant read Get_publicId; + property systemId: OleVariant read Get_systemId; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMNotationDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF8C-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMNotationDisp = dispinterface + ['{2933BF8C-7B36-11D2-B20E-00C04F983E60}'] + property publicId: OleVariant readonly dispid 136; + property systemId: OleVariant readonly dispid 137; + property nodeName: WideString readonly dispid 2; + property nodeValue: OleVariant dispid 3; + property nodeType: DOMNodeType readonly dispid 4; + property parentNode: IXMLDOMNode readonly dispid 6; + property childNodes: IXMLDOMNodeList readonly dispid 7; + property firstChild: IXMLDOMNode readonly dispid 8; + property lastChild: IXMLDOMNode readonly dispid 9; + property previousSibling: IXMLDOMNode readonly dispid 10; + property nextSibling: IXMLDOMNode readonly dispid 11; + property attributes: IXMLDOMNamedNodeMap readonly dispid 12; + function insertBefore(const newChild: IXMLDOMNode; refChild: OleVariant): IXMLDOMNode; dispid 13; + function replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; dispid 14; + function removeChild(const childNode: IXMLDOMNode): IXMLDOMNode; dispid 15; + function appendChild(const newChild: IXMLDOMNode): IXMLDOMNode; dispid 16; + function hasChildNodes: WordBool; dispid 17; + property ownerDocument: IXMLDOMDocument readonly dispid 18; + function cloneNode(deep: WordBool): IXMLDOMNode; dispid 19; + property nodeTypeString: WideString readonly dispid 21; + property text: WideString dispid 24; + property specified: WordBool readonly dispid 22; + property definition: IXMLDOMNode readonly dispid 23; + property nodeTypedValue: OleVariant dispid 25; + function dataType: OleVariant; dispid 26; + property xml: WideString readonly dispid 27; + function transformNode(const stylesheet: IXMLDOMNode): WideString; dispid 28; + function selectNodes(const queryString: WideString): IXMLDOMNodeList; dispid 29; + function selectSingleNode(const queryString: WideString): IXMLDOMNode; dispid 30; + property parsed: WordBool readonly dispid 31; + property namespaceURI: WideString readonly dispid 32; + property prefix: WideString readonly dispid 33; + property baseName: WideString readonly dispid 34; + procedure transformNodeToObject(const stylesheet: IXMLDOMNode; outputObject: OleVariant); dispid 35; + end; + +// *********************************************************************// +// Interface: IXMLDOMEntity +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF8D-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMEntity = interface(IXMLDOMNode) + ['{2933BF8D-7B36-11D2-B20E-00C04F983E60}'] + function Get_publicId: OleVariant; safecall; + function Get_systemId: OleVariant; safecall; + function Get_notationName: WideString; safecall; + property publicId: OleVariant read Get_publicId; + property systemId: OleVariant read Get_systemId; + property notationName: WideString read Get_notationName; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMEntityDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF8D-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXMLDOMEntityDisp = dispinterface + ['{2933BF8D-7B36-11D2-B20E-00C04F983E60}'] + property publicId: OleVariant readonly dispid 140; + property systemId: OleVariant readonly dispid 141; + property notationName: WideString readonly dispid 142; + property nodeName: WideString readonly dispid 2; + property nodeValue: OleVariant dispid 3; + property nodeType: DOMNodeType readonly dispid 4; + property parentNode: IXMLDOMNode readonly dispid 6; + property childNodes: IXMLDOMNodeList readonly dispid 7; + property firstChild: IXMLDOMNode readonly dispid 8; + property lastChild: IXMLDOMNode readonly dispid 9; + property previousSibling: IXMLDOMNode readonly dispid 10; + property nextSibling: IXMLDOMNode readonly dispid 11; + property attributes: IXMLDOMNamedNodeMap readonly dispid 12; + function insertBefore(const newChild: IXMLDOMNode; refChild: OleVariant): IXMLDOMNode; dispid 13; + function replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; dispid 14; + function removeChild(const childNode: IXMLDOMNode): IXMLDOMNode; dispid 15; + function appendChild(const newChild: IXMLDOMNode): IXMLDOMNode; dispid 16; + function hasChildNodes: WordBool; dispid 17; + property ownerDocument: IXMLDOMDocument readonly dispid 18; + function cloneNode(deep: WordBool): IXMLDOMNode; dispid 19; + property nodeTypeString: WideString readonly dispid 21; + property text: WideString dispid 24; + property specified: WordBool readonly dispid 22; + property definition: IXMLDOMNode readonly dispid 23; + property nodeTypedValue: OleVariant dispid 25; + function dataType: OleVariant; dispid 26; + property xml: WideString readonly dispid 27; + function transformNode(const stylesheet: IXMLDOMNode): WideString; dispid 28; + function selectNodes(const queryString: WideString): IXMLDOMNodeList; dispid 29; + function selectSingleNode(const queryString: WideString): IXMLDOMNode; dispid 30; + property parsed: WordBool readonly dispid 31; + property namespaceURI: WideString readonly dispid 32; + property prefix: WideString readonly dispid 33; + property baseName: WideString readonly dispid 34; + procedure transformNodeToObject(const stylesheet: IXMLDOMNode; outputObject: OleVariant); dispid 35; + end; + +// *********************************************************************// +// Interface: IXMLDOMParseError2 +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {3EFAA428-272F-11D2-836F-0000F87A7782} +// *********************************************************************// + IXMLDOMParseError2 = interface(IXMLDOMParseError) + ['{3EFAA428-272F-11D2-836F-0000F87A7782}'] + function Get_errorXPath: WideString; safecall; + function Get_allErrors: IXMLDOMParseErrorCollection; safecall; + function errorParameters(index: Integer): WideString; safecall; + function Get_errorParametersCount: Integer; safecall; + property errorXPath: WideString read Get_errorXPath; + property allErrors: IXMLDOMParseErrorCollection read Get_allErrors; + property errorParametersCount: Integer read Get_errorParametersCount; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMParseError2Disp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {3EFAA428-272F-11D2-836F-0000F87A7782} +// *********************************************************************// + IXMLDOMParseError2Disp = dispinterface + ['{3EFAA428-272F-11D2-836F-0000F87A7782}'] + property errorXPath: WideString readonly dispid 190; + property allErrors: IXMLDOMParseErrorCollection readonly dispid 187; + function errorParameters(index: Integer): WideString; dispid 188; + property errorParametersCount: Integer readonly dispid 189; + property errorCode: Integer readonly dispid 0; + property url: WideString readonly dispid 179; + property reason: WideString readonly dispid 180; + property srcText: WideString readonly dispid 181; + property line: Integer readonly dispid 182; + property linepos: Integer readonly dispid 183; + property filepos: Integer readonly dispid 184; + end; + +// *********************************************************************// +// Interface: IXMLDOMParseErrorCollection +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {3EFAA429-272F-11D2-836F-0000F87A7782} +// *********************************************************************// + IXMLDOMParseErrorCollection = interface(IDispatch) + ['{3EFAA429-272F-11D2-836F-0000F87A7782}'] + function Get_item(index: Integer): IXMLDOMParseError2; safecall; + function Get_length: Integer; safecall; + function Get_next: IXMLDOMParseError2; safecall; + procedure reset; safecall; + function Get__newEnum: IUnknown; safecall; + property item[index: Integer]: IXMLDOMParseError2 read Get_item; default; + property length: Integer read Get_length; + property next: IXMLDOMParseError2 read Get_next; + property _newEnum: IUnknown read Get__newEnum; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMParseErrorCollectionDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {3EFAA429-272F-11D2-836F-0000F87A7782} +// *********************************************************************// + IXMLDOMParseErrorCollectionDisp = dispinterface + ['{3EFAA429-272F-11D2-836F-0000F87A7782}'] + property item[index: Integer]: IXMLDOMParseError2 readonly dispid 0; default; + property length: Integer readonly dispid 193; + property next: IXMLDOMParseError2 readonly dispid 194; + procedure reset; dispid 195; + property _newEnum: IUnknown readonly dispid -4; + end; + +// *********************************************************************// +// Interface: IXTLRuntime +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {3EFAA425-272F-11D2-836F-0000F87A7782} +// *********************************************************************// + IXTLRuntime = interface(IXMLDOMNode) + ['{3EFAA425-272F-11D2-836F-0000F87A7782}'] + function uniqueID(const pNode: IXMLDOMNode): Integer; safecall; + function depth(const pNode: IXMLDOMNode): Integer; safecall; + function childNumber(const pNode: IXMLDOMNode): Integer; safecall; + function ancestorChildNumber(const bstrNodeName: WideString; const pNode: IXMLDOMNode): Integer; safecall; + function absoluteChildNumber(const pNode: IXMLDOMNode): Integer; safecall; + function formatIndex(lIndex: Integer; const bstrFormat: WideString): WideString; safecall; + function formatNumber(dblNumber: Double; const bstrFormat: WideString): WideString; safecall; + function formatDate(varDate: OleVariant; const bstrFormat: WideString; varDestLocale: OleVariant): WideString; safecall; + function formatTime(varTime: OleVariant; const bstrFormat: WideString; varDestLocale: OleVariant): WideString; safecall; + end; + +// *********************************************************************// +// DispIntf: IXTLRuntimeDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {3EFAA425-272F-11D2-836F-0000F87A7782} +// *********************************************************************// + IXTLRuntimeDisp = dispinterface + ['{3EFAA425-272F-11D2-836F-0000F87A7782}'] + function uniqueID(const pNode: IXMLDOMNode): Integer; dispid 187; + function depth(const pNode: IXMLDOMNode): Integer; dispid 188; + function childNumber(const pNode: IXMLDOMNode): Integer; dispid 189; + function ancestorChildNumber(const bstrNodeName: WideString; const pNode: IXMLDOMNode): Integer; dispid 190; + function absoluteChildNumber(const pNode: IXMLDOMNode): Integer; dispid 191; + function formatIndex(lIndex: Integer; const bstrFormat: WideString): WideString; dispid 192; + function formatNumber(dblNumber: Double; const bstrFormat: WideString): WideString; dispid 193; + function formatDate(varDate: OleVariant; const bstrFormat: WideString; varDestLocale: OleVariant): WideString; dispid 194; + function formatTime(varTime: OleVariant; const bstrFormat: WideString; varDestLocale: OleVariant): WideString; dispid 195; + property nodeName: WideString readonly dispid 2; + property nodeValue: OleVariant dispid 3; + property nodeType: DOMNodeType readonly dispid 4; + property parentNode: IXMLDOMNode readonly dispid 6; + property childNodes: IXMLDOMNodeList readonly dispid 7; + property firstChild: IXMLDOMNode readonly dispid 8; + property lastChild: IXMLDOMNode readonly dispid 9; + property previousSibling: IXMLDOMNode readonly dispid 10; + property nextSibling: IXMLDOMNode readonly dispid 11; + property attributes: IXMLDOMNamedNodeMap readonly dispid 12; + function insertBefore(const newChild: IXMLDOMNode; refChild: OleVariant): IXMLDOMNode; dispid 13; + function replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; dispid 14; + function removeChild(const childNode: IXMLDOMNode): IXMLDOMNode; dispid 15; + function appendChild(const newChild: IXMLDOMNode): IXMLDOMNode; dispid 16; + function hasChildNodes: WordBool; dispid 17; + property ownerDocument: IXMLDOMDocument readonly dispid 18; + function cloneNode(deep: WordBool): IXMLDOMNode; dispid 19; + property nodeTypeString: WideString readonly dispid 21; + property text: WideString dispid 24; + property specified: WordBool readonly dispid 22; + property definition: IXMLDOMNode readonly dispid 23; + property nodeTypedValue: OleVariant dispid 25; + function dataType: OleVariant; dispid 26; + property xml: WideString readonly dispid 27; + function transformNode(const stylesheet: IXMLDOMNode): WideString; dispid 28; + function selectNodes(const queryString: WideString): IXMLDOMNodeList; dispid 29; + function selectSingleNode(const queryString: WideString): IXMLDOMNode; dispid 30; + property parsed: WordBool readonly dispid 31; + property namespaceURI: WideString readonly dispid 32; + property prefix: WideString readonly dispid 33; + property baseName: WideString readonly dispid 34; + procedure transformNodeToObject(const stylesheet: IXMLDOMNode; outputObject: OleVariant); dispid 35; + end; + +// *********************************************************************// +// Interface: IXSLTemplate +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF93-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXSLTemplate = interface(IDispatch) + ['{2933BF93-7B36-11D2-B20E-00C04F983E60}'] + procedure _Set_stylesheet(const stylesheet: IXMLDOMNode); safecall; + function Get_stylesheet: IXMLDOMNode; safecall; + function createProcessor: IXSLProcessor; safecall; + property stylesheet: IXMLDOMNode read Get_stylesheet write _Set_stylesheet; + end; + +// *********************************************************************// +// DispIntf: IXSLTemplateDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF93-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXSLTemplateDisp = dispinterface + ['{2933BF93-7B36-11D2-B20E-00C04F983E60}'] + property stylesheet: IXMLDOMNode dispid 2; + function createProcessor: IXSLProcessor; dispid 3; + end; + +// *********************************************************************// +// Interface: IXSLProcessor +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF92-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXSLProcessor = interface(IDispatch) + ['{2933BF92-7B36-11D2-B20E-00C04F983E60}'] + procedure Set_input(pVar: OleVariant); safecall; + function Get_input: OleVariant; safecall; + function Get_ownerTemplate: IXSLTemplate; safecall; + procedure setStartMode(const mode: WideString; const namespaceURI: WideString); safecall; + function Get_startMode: WideString; safecall; + function Get_startModeURI: WideString; safecall; + procedure Set_output(pOutput: OleVariant); safecall; + function Get_output: OleVariant; safecall; + function transform: WordBool; safecall; + procedure reset; safecall; + function Get_readyState: Integer; safecall; + procedure addParameter(const baseName: WideString; parameter: OleVariant; + const namespaceURI: WideString); safecall; + procedure addObject(const obj: IDispatch; const namespaceURI: WideString); safecall; + function Get_stylesheet: IXMLDOMNode; safecall; + property input: OleVariant read Get_input write Set_input; + property ownerTemplate: IXSLTemplate read Get_ownerTemplate; + property startMode: WideString read Get_startMode; + property startModeURI: WideString read Get_startModeURI; + property output: OleVariant read Get_output write Set_output; + property readyState: Integer read Get_readyState; + property stylesheet: IXMLDOMNode read Get_stylesheet; + end; + +// *********************************************************************// +// DispIntf: IXSLProcessorDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2933BF92-7B36-11D2-B20E-00C04F983E60} +// *********************************************************************// + IXSLProcessorDisp = dispinterface + ['{2933BF92-7B36-11D2-B20E-00C04F983E60}'] + property input: OleVariant dispid 2; + property ownerTemplate: IXSLTemplate readonly dispid 3; + procedure setStartMode(const mode: WideString; const namespaceURI: WideString); dispid 4; + property startMode: WideString readonly dispid 5; + property startModeURI: WideString readonly dispid 6; + property output: OleVariant dispid 7; + function transform: WordBool; dispid 8; + procedure reset; dispid 9; + property readyState: Integer readonly dispid 10; + procedure addParameter(const baseName: WideString; parameter: OleVariant; + const namespaceURI: WideString); dispid 11; + procedure addObject(const obj: IDispatch; const namespaceURI: WideString); dispid 12; + property stylesheet: IXMLDOMNode readonly dispid 13; + end; + +// *********************************************************************// +// Interface: ISAXXMLReader +// Flags: (16) Hidden +// GUID: {A4F96ED0-F829-476E-81C0-CDC7BD2A0802} +// *********************************************************************// + ISAXXMLReader = interface(IUnknown) + ['{A4F96ED0-F829-476E-81C0-CDC7BD2A0802}'] + function getFeature(var pwchName: Word; out pvfValue: WordBool): HResult; stdcall; + function putFeature(var pwchName: Word; vfValue: WordBool): HResult; stdcall; + function getProperty(var pwchName: Word; out pvarValue: OleVariant): HResult; stdcall; + function putProperty(var pwchName: Word; varValue: OleVariant): HResult; stdcall; + function getEntityResolver(out ppResolver: ISAXEntityResolver): HResult; stdcall; + function putEntityResolver(const pResolver: ISAXEntityResolver): HResult; stdcall; + function getContentHandler(out ppHandler: ISAXContentHandler): HResult; stdcall; + function putContentHandler(const pHandler: ISAXContentHandler): HResult; stdcall; + function getDTDHandler(out ppHandler: ISAXDTDHandler): HResult; stdcall; + function putDTDHandler(const pHandler: ISAXDTDHandler): HResult; stdcall; + function getErrorHandler(out ppHandler: ISAXErrorHandler): HResult; stdcall; + function putErrorHandler(const pHandler: ISAXErrorHandler): HResult; stdcall; + function getBaseURL(out ppwchBaseUrl: PWord1): HResult; stdcall; + function putBaseURL(var pwchBaseUrl: Word): HResult; stdcall; + function getSecureBaseURL(out ppwchSecureBaseUrl: PWord1): HResult; stdcall; + function putSecureBaseURL(var pwchSecureBaseUrl: Word): HResult; stdcall; + function parse(varInput: OleVariant): HResult; stdcall; + function parseURL(var pwchUrl: Word): HResult; stdcall; + end; + +// *********************************************************************// +// Interface: ISAXEntityResolver +// Flags: (16) Hidden +// GUID: {99BCA7BD-E8C4-4D5F-A0CF-6D907901FF07} +// *********************************************************************// + ISAXEntityResolver = interface(IUnknown) + ['{99BCA7BD-E8C4-4D5F-A0CF-6D907901FF07}'] + function resolveEntity(var pwchPublicId: Word; var pwchSystemId: Word; out pvarInput: OleVariant): HResult; stdcall; + end; + +// *********************************************************************// +// Interface: ISAXContentHandler +// Flags: (16) Hidden +// GUID: {1545CDFA-9E4E-4497-A8A4-2BF7D0112C44} +// *********************************************************************// + ISAXContentHandler = interface(IUnknown) + ['{1545CDFA-9E4E-4497-A8A4-2BF7D0112C44}'] + function putDocumentLocator(const pLocator: ISAXLocator): HResult; stdcall; + function startDocument: HResult; stdcall; + function endDocument: HResult; stdcall; + function startPrefixMapping(var pwchPrefix: Word; cchPrefix: SYSINT; var pwchUri: Word; + cchUri: SYSINT): HResult; stdcall; + function endPrefixMapping(var pwchPrefix: Word; cchPrefix: SYSINT): HResult; stdcall; + function startElement(var pwchNamespaceUri: Word; cchNamespaceUri: SYSINT; + var pwchLocalName: Word; cchLocalName: SYSINT; var pwchQName: Word; + cchQName: SYSINT; const pAttributes: ISAXAttributes): HResult; stdcall; + function endElement(var pwchNamespaceUri: Word; cchNamespaceUri: SYSINT; + var pwchLocalName: Word; cchLocalName: SYSINT; var pwchQName: Word; + cchQName: SYSINT): HResult; stdcall; + function characters(var pwchChars: Word; cchChars: SYSINT): HResult; stdcall; + function ignorableWhitespace(var pwchChars: Word; cchChars: SYSINT): HResult; stdcall; + function processingInstruction(var pwchTarget: Word; cchTarget: SYSINT; var pwchData: Word; + cchData: SYSINT): HResult; stdcall; + function skippedEntity(var pwchName: Word; cchName: SYSINT): HResult; stdcall; + end; + +// *********************************************************************// +// Interface: ISAXLocator +// Flags: (16) Hidden +// GUID: {9B7E472A-0DE4-4640-BFF3-84D38A051C31} +// *********************************************************************// + ISAXLocator = interface(IUnknown) + ['{9B7E472A-0DE4-4640-BFF3-84D38A051C31}'] + function getColumnNumber(out pnColumn: SYSINT): HResult; stdcall; + function getLineNumber(out pnLine: SYSINT): HResult; stdcall; + function getPublicId(out ppwchPublicId: PWord1): HResult; stdcall; + function getSystemId(out ppwchSystemId: PWord1): HResult; stdcall; + end; + +// *********************************************************************// +// Interface: ISAXAttributes +// Flags: (16) Hidden +// GUID: {F078ABE1-45D2-4832-91EA-4466CE2F25C9} +// *********************************************************************// + ISAXAttributes = interface(IUnknown) + ['{F078ABE1-45D2-4832-91EA-4466CE2F25C9}'] + function getLength(out pnLength: SYSINT): HResult; stdcall; + function getURI(nIndex: SYSINT; out ppwchUri: PWord1; out pcchUri: SYSINT): HResult; stdcall; + function getLocalName(nIndex: SYSINT; out ppwchLocalName: PWord1; out pcchLocalName: SYSINT): HResult; stdcall; + function getQName(nIndex: SYSINT; out ppwchQName: PWord1; out pcchQName: SYSINT): HResult; stdcall; + function getName(nIndex: SYSINT; out ppwchUri: PWord1; out pcchUri: SYSINT; + out ppwchLocalName: PWord1; out pcchLocalName: SYSINT; out ppwchQName: PWord1; + out pcchQName: SYSINT): HResult; stdcall; + function getIndexFromName(var pwchUri: Word; cchUri: SYSINT; var pwchLocalName: Word; + cchLocalName: SYSINT; out pnIndex: SYSINT): HResult; stdcall; + function getIndexFromQName(var pwchQName: Word; cchQName: SYSINT; out pnIndex: SYSINT): HResult; stdcall; + function getType(nIndex: SYSINT; out ppwchType: PWord1; out pcchType: SYSINT): HResult; stdcall; + function getTypeFromName(var pwchUri: Word; cchUri: SYSINT; var pwchLocalName: Word; + cchLocalName: SYSINT; out ppwchType: PWord1; out pcchType: SYSINT): HResult; stdcall; + function getTypeFromQName(var pwchQName: Word; cchQName: SYSINT; out ppwchType: PWord1; + out pcchType: SYSINT): HResult; stdcall; + function getValue(nIndex: SYSINT; out ppwchValue: PWord1; out pcchValue: SYSINT): HResult; stdcall; + function getValueFromName(var pwchUri: Word; cchUri: SYSINT; var pwchLocalName: Word; + cchLocalName: SYSINT; out ppwchValue: PWord1; out pcchValue: SYSINT): HResult; stdcall; + function getValueFromQName(var pwchQName: Word; cchQName: SYSINT; out ppwchValue: PWord1; + out pcchValue: SYSINT): HResult; stdcall; + end; + +// *********************************************************************// +// Interface: ISAXDTDHandler +// Flags: (16) Hidden +// GUID: {E15C1BAF-AFB3-4D60-8C36-19A8C45DEFED} +// *********************************************************************// + ISAXDTDHandler = interface(IUnknown) + ['{E15C1BAF-AFB3-4D60-8C36-19A8C45DEFED}'] + function notationDecl(var pwchName: Word; cchName: SYSINT; var pwchPublicId: Word; + cchPublicId: SYSINT; var pwchSystemId: Word; cchSystemId: SYSINT): HResult; stdcall; + function unparsedEntityDecl(var pwchName: Word; cchName: SYSINT; var pwchPublicId: Word; + cchPublicId: SYSINT; var pwchSystemId: Word; cchSystemId: SYSINT; + var pwchNotationName: Word; cchNotationName: SYSINT): HResult; stdcall; + end; + +// *********************************************************************// +// Interface: ISAXErrorHandler +// Flags: (16) Hidden +// GUID: {A60511C4-CCF5-479E-98A3-DC8DC545B7D0} +// *********************************************************************// + ISAXErrorHandler = interface(IUnknown) + ['{A60511C4-CCF5-479E-98A3-DC8DC545B7D0}'] + function error(const pLocator: ISAXLocator; var pwchErrorMessage: Word; hrErrorCode: HResult): HResult; stdcall; + function fatalError(const pLocator: ISAXLocator; var pwchErrorMessage: Word; + hrErrorCode: HResult): HResult; stdcall; + function ignorableWarning(const pLocator: ISAXLocator; var pwchErrorMessage: Word; + hrErrorCode: HResult): HResult; stdcall; + end; + +// *********************************************************************// +// Interface: ISAXXMLFilter +// Flags: (16) Hidden +// GUID: {70409222-CA09-4475-ACB8-40312FE8D145} +// *********************************************************************// + ISAXXMLFilter = interface(ISAXXMLReader) + ['{70409222-CA09-4475-ACB8-40312FE8D145}'] + function getParent(out ppReader: ISAXXMLReader): HResult; stdcall; + function putParent(const pReader: ISAXXMLReader): HResult; stdcall; + end; + +// *********************************************************************// +// Interface: ISAXLexicalHandler +// Flags: (16) Hidden +// GUID: {7F85D5F5-47A8-4497-BDA5-84BA04819EA6} +// *********************************************************************// + ISAXLexicalHandler = interface(IUnknown) + ['{7F85D5F5-47A8-4497-BDA5-84BA04819EA6}'] + function startDTD(var pwchName: Word; cchName: SYSINT; var pwchPublicId: Word; + cchPublicId: SYSINT; var pwchSystemId: Word; cchSystemId: SYSINT): HResult; stdcall; + function endDTD: HResult; stdcall; + function startEntity(var pwchName: Word; cchName: SYSINT): HResult; stdcall; + function endEntity(var pwchName: Word; cchName: SYSINT): HResult; stdcall; + function startCDATA: HResult; stdcall; + function endCDATA: HResult; stdcall; + function comment(var pwchChars: Word; cchChars: SYSINT): HResult; stdcall; + end; + +// *********************************************************************// +// Interface: ISAXDeclHandler +// Flags: (16) Hidden +// GUID: {862629AC-771A-47B2-8337-4E6843C1BE90} +// *********************************************************************// + ISAXDeclHandler = interface(IUnknown) + ['{862629AC-771A-47B2-8337-4E6843C1BE90}'] + function elementDecl(var pwchName: Word; cchName: SYSINT; var pwchModel: Word; cchModel: SYSINT): HResult; stdcall; + function attributeDecl(var pwchElementName: Word; cchElementName: SYSINT; + var pwchAttributeName: Word; cchAttributeName: SYSINT; + var pwchType: Word; cchType: SYSINT; var pwchValueDefault: Word; + cchValueDefault: SYSINT; var pwchValue: Word; cchValue: SYSINT): HResult; stdcall; + function internalEntityDecl(var pwchName: Word; cchName: SYSINT; var pwchValue: Word; + cchValue: SYSINT): HResult; stdcall; + function externalEntityDecl(var pwchName: Word; cchName: SYSINT; var pwchPublicId: Word; + cchPublicId: SYSINT; var pwchSystemId: Word; cchSystemId: SYSINT): HResult; stdcall; + end; + +// *********************************************************************// +// Interface: IVBSAXXMLReader +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {8C033CAA-6CD6-4F73-B728-4531AF74945F} +// *********************************************************************// + IVBSAXXMLReader = interface(IDispatch) + ['{8C033CAA-6CD6-4F73-B728-4531AF74945F}'] + function getFeature(const strName: WideString): WordBool; safecall; + procedure putFeature(const strName: WideString; fValue: WordBool); safecall; + function getProperty(const strName: WideString): OleVariant; safecall; + procedure putProperty(const strName: WideString; varValue: OleVariant); safecall; + function Get_entityResolver: IVBSAXEntityResolver; safecall; + procedure _Set_entityResolver(const oResolver: IVBSAXEntityResolver); safecall; + function Get_contentHandler: IVBSAXContentHandler; safecall; + procedure _Set_contentHandler(const oHandler: IVBSAXContentHandler); safecall; + function Get_dtdHandler: IVBSAXDTDHandler; safecall; + procedure _Set_dtdHandler(const oHandler: IVBSAXDTDHandler); safecall; + function Get_errorHandler: IVBSAXErrorHandler; safecall; + procedure _Set_errorHandler(const oHandler: IVBSAXErrorHandler); safecall; + function Get_baseURL: WideString; safecall; + procedure Set_baseURL(const strBaseURL: WideString); safecall; + function Get_secureBaseURL: WideString; safecall; + procedure Set_secureBaseURL(const strSecureBaseURL: WideString); safecall; + procedure parse(varInput: OleVariant); safecall; + procedure parseURL(const strURL: WideString); safecall; + property entityResolver: IVBSAXEntityResolver read Get_entityResolver write _Set_entityResolver; + property contentHandler: IVBSAXContentHandler read Get_contentHandler write _Set_contentHandler; + property dtdHandler: IVBSAXDTDHandler read Get_dtdHandler write _Set_dtdHandler; + property errorHandler: IVBSAXErrorHandler read Get_errorHandler write _Set_errorHandler; + property baseURL: WideString read Get_baseURL write Set_baseURL; + property secureBaseURL: WideString read Get_secureBaseURL write Set_secureBaseURL; + end; + +// *********************************************************************// +// DispIntf: IVBSAXXMLReaderDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {8C033CAA-6CD6-4F73-B728-4531AF74945F} +// *********************************************************************// + IVBSAXXMLReaderDisp = dispinterface + ['{8C033CAA-6CD6-4F73-B728-4531AF74945F}'] + function getFeature(const strName: WideString): WordBool; dispid 1282; + procedure putFeature(const strName: WideString; fValue: WordBool); dispid 1283; + function getProperty(const strName: WideString): OleVariant; dispid 1284; + procedure putProperty(const strName: WideString; varValue: OleVariant); dispid 1285; + property entityResolver: IVBSAXEntityResolver dispid 1286; + property contentHandler: IVBSAXContentHandler dispid 1287; + property dtdHandler: IVBSAXDTDHandler dispid 1288; + property errorHandler: IVBSAXErrorHandler dispid 1289; + property baseURL: WideString dispid 1290; + property secureBaseURL: WideString dispid 1291; + procedure parse(varInput: OleVariant); dispid 1292; + procedure parseURL(const strURL: WideString); dispid 1293; + end; + +// *********************************************************************// +// Interface: IVBSAXEntityResolver +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {0C05D096-F45B-4ACA-AD1A-AA0BC25518DC} +// *********************************************************************// + IVBSAXEntityResolver = interface(IDispatch) + ['{0C05D096-F45B-4ACA-AD1A-AA0BC25518DC}'] + function resolveEntity(var strPublicId: WideString; var strSystemId: WideString): OleVariant; safecall; + end; + +// *********************************************************************// +// DispIntf: IVBSAXEntityResolverDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {0C05D096-F45B-4ACA-AD1A-AA0BC25518DC} +// *********************************************************************// + IVBSAXEntityResolverDisp = dispinterface + ['{0C05D096-F45B-4ACA-AD1A-AA0BC25518DC}'] + function resolveEntity(var strPublicId: WideString; var strSystemId: WideString): OleVariant; dispid 1319; + end; + +// *********************************************************************// +// Interface: IVBSAXContentHandler +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2ED7290A-4DD5-4B46-BB26-4E4155E77FAA} +// *********************************************************************// + IVBSAXContentHandler = interface(IDispatch) + ['{2ED7290A-4DD5-4B46-BB26-4E4155E77FAA}'] + procedure _Set_documentLocator(const Param1: IVBSAXLocator); safecall; + procedure startDocument; safecall; + procedure endDocument; safecall; + procedure startPrefixMapping(var strPrefix: WideString; var strURI: WideString); safecall; + procedure endPrefixMapping(var strPrefix: WideString); safecall; + procedure startElement(var strNamespaceURI: WideString; var strLocalName: WideString; + var strQName: WideString; const oAttributes: IVBSAXAttributes); safecall; + procedure endElement(var strNamespaceURI: WideString; var strLocalName: WideString; + var strQName: WideString); safecall; + procedure characters(var strChars: WideString); safecall; + procedure ignorableWhitespace(var strChars: WideString); safecall; + procedure processingInstruction(var strTarget: WideString; var strData: WideString); safecall; + procedure skippedEntity(var strName: WideString); safecall; + end; + +// *********************************************************************// +// DispIntf: IVBSAXContentHandlerDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {2ED7290A-4DD5-4B46-BB26-4E4155E77FAA} +// *********************************************************************// + IVBSAXContentHandlerDisp = dispinterface + ['{2ED7290A-4DD5-4B46-BB26-4E4155E77FAA}'] + procedure startDocument; dispid 1323; + procedure endDocument; dispid 1324; + procedure startPrefixMapping(var strPrefix: WideString; var strURI: WideString); dispid 1325; + procedure endPrefixMapping(var strPrefix: WideString); dispid 1326; + procedure startElement(var strNamespaceURI: WideString; var strLocalName: WideString; + var strQName: WideString; const oAttributes: IVBSAXAttributes); dispid 1327; + procedure endElement(var strNamespaceURI: WideString; var strLocalName: WideString; + var strQName: WideString); dispid 1328; + procedure characters(var strChars: WideString); dispid 1329; + procedure ignorableWhitespace(var strChars: WideString); dispid 1330; + procedure processingInstruction(var strTarget: WideString; var strData: WideString); dispid 1331; + procedure skippedEntity(var strName: WideString); dispid 1332; + end; + +// *********************************************************************// +// Interface: IVBSAXLocator +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {796E7AC5-5AA2-4EFF-ACAD-3FAAF01A3288} +// *********************************************************************// + IVBSAXLocator = interface(IDispatch) + ['{796E7AC5-5AA2-4EFF-ACAD-3FAAF01A3288}'] + function Get_columnNumber: SYSINT; safecall; + function Get_lineNumber: SYSINT; safecall; + function Get_publicId: WideString; safecall; + function Get_systemId: WideString; safecall; + property columnNumber: SYSINT read Get_columnNumber; + property lineNumber: SYSINT read Get_lineNumber; + property publicId: WideString read Get_publicId; + property systemId: WideString read Get_systemId; + end; + +// *********************************************************************// +// DispIntf: IVBSAXLocatorDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {796E7AC5-5AA2-4EFF-ACAD-3FAAF01A3288} +// *********************************************************************// + IVBSAXLocatorDisp = dispinterface + ['{796E7AC5-5AA2-4EFF-ACAD-3FAAF01A3288}'] + property columnNumber: SYSINT readonly dispid 1313; + property lineNumber: SYSINT readonly dispid 1314; + property publicId: WideString readonly dispid 1315; + property systemId: WideString readonly dispid 1316; + end; + +// *********************************************************************// +// Interface: IVBSAXAttributes +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {10DC0586-132B-4CAC-8BB3-DB00AC8B7EE0} +// *********************************************************************// + IVBSAXAttributes = interface(IDispatch) + ['{10DC0586-132B-4CAC-8BB3-DB00AC8B7EE0}'] + function Get_length: SYSINT; safecall; + function getURI(nIndex: SYSINT): WideString; safecall; + function getLocalName(nIndex: SYSINT): WideString; safecall; + function getQName(nIndex: SYSINT): WideString; safecall; + function getIndexFromName(const strURI: WideString; const strLocalName: WideString): SYSINT; safecall; + function getIndexFromQName(const strQName: WideString): SYSINT; safecall; + function getType(nIndex: SYSINT): WideString; safecall; + function getTypeFromName(const strURI: WideString; const strLocalName: WideString): WideString; safecall; + function getTypeFromQName(const strQName: WideString): WideString; safecall; + function getValue(nIndex: SYSINT): WideString; safecall; + function getValueFromName(const strURI: WideString; const strLocalName: WideString): WideString; safecall; + function getValueFromQName(const strQName: WideString): WideString; safecall; + property length: SYSINT read Get_length; + end; + +// *********************************************************************// +// DispIntf: IVBSAXAttributesDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {10DC0586-132B-4CAC-8BB3-DB00AC8B7EE0} +// *********************************************************************// + IVBSAXAttributesDisp = dispinterface + ['{10DC0586-132B-4CAC-8BB3-DB00AC8B7EE0}'] + property length: SYSINT readonly dispid 1344; + function getURI(nIndex: SYSINT): WideString; dispid 1345; + function getLocalName(nIndex: SYSINT): WideString; dispid 1346; + function getQName(nIndex: SYSINT): WideString; dispid 1347; + function getIndexFromName(const strURI: WideString; const strLocalName: WideString): SYSINT; dispid 1348; + function getIndexFromQName(const strQName: WideString): SYSINT; dispid 1349; + function getType(nIndex: SYSINT): WideString; dispid 1350; + function getTypeFromName(const strURI: WideString; const strLocalName: WideString): WideString; dispid 1351; + function getTypeFromQName(const strQName: WideString): WideString; dispid 1352; + function getValue(nIndex: SYSINT): WideString; dispid 1353; + function getValueFromName(const strURI: WideString; const strLocalName: WideString): WideString; dispid 1354; + function getValueFromQName(const strQName: WideString): WideString; dispid 1355; + end; + +// *********************************************************************// +// Interface: IVBSAXDTDHandler +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {24FB3297-302D-4620-BA39-3A732D850558} +// *********************************************************************// + IVBSAXDTDHandler = interface(IDispatch) + ['{24FB3297-302D-4620-BA39-3A732D850558}'] + procedure notationDecl(var strName: WideString; var strPublicId: WideString; + var strSystemId: WideString); safecall; + procedure unparsedEntityDecl(var strName: WideString; var strPublicId: WideString; + var strSystemId: WideString; var strNotationName: WideString); safecall; + end; + +// *********************************************************************// +// DispIntf: IVBSAXDTDHandlerDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {24FB3297-302D-4620-BA39-3A732D850558} +// *********************************************************************// + IVBSAXDTDHandlerDisp = dispinterface + ['{24FB3297-302D-4620-BA39-3A732D850558}'] + procedure notationDecl(var strName: WideString; var strPublicId: WideString; + var strSystemId: WideString); dispid 1335; + procedure unparsedEntityDecl(var strName: WideString; var strPublicId: WideString; + var strSystemId: WideString; var strNotationName: WideString); dispid 1336; + end; + +// *********************************************************************// +// Interface: IVBSAXErrorHandler +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {D963D3FE-173C-4862-9095-B92F66995F52} +// *********************************************************************// + IVBSAXErrorHandler = interface(IDispatch) + ['{D963D3FE-173C-4862-9095-B92F66995F52}'] + procedure error(const oLocator: IVBSAXLocator; var strErrorMessage: WideString; + nErrorCode: Integer); safecall; + procedure fatalError(const oLocator: IVBSAXLocator; var strErrorMessage: WideString; + nErrorCode: Integer); safecall; + procedure ignorableWarning(const oLocator: IVBSAXLocator; var strErrorMessage: WideString; + nErrorCode: Integer); safecall; + end; + +// *********************************************************************// +// DispIntf: IVBSAXErrorHandlerDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {D963D3FE-173C-4862-9095-B92F66995F52} +// *********************************************************************// + IVBSAXErrorHandlerDisp = dispinterface + ['{D963D3FE-173C-4862-9095-B92F66995F52}'] + procedure error(const oLocator: IVBSAXLocator; var strErrorMessage: WideString; + nErrorCode: Integer); dispid 1339; + procedure fatalError(const oLocator: IVBSAXLocator; var strErrorMessage: WideString; + nErrorCode: Integer); dispid 1340; + procedure ignorableWarning(const oLocator: IVBSAXLocator; var strErrorMessage: WideString; + nErrorCode: Integer); dispid 1341; + end; + +// *********************************************************************// +// Interface: IVBSAXXMLFilter +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {1299EB1B-5B88-433E-82DE-82CA75AD4E04} +// *********************************************************************// + IVBSAXXMLFilter = interface(IDispatch) + ['{1299EB1B-5B88-433E-82DE-82CA75AD4E04}'] + function Get_parent: IVBSAXXMLReader; safecall; + procedure _Set_parent(const oReader: IVBSAXXMLReader); safecall; + property parent: IVBSAXXMLReader read Get_parent write _Set_parent; + end; + +// *********************************************************************// +// DispIntf: IVBSAXXMLFilterDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {1299EB1B-5B88-433E-82DE-82CA75AD4E04} +// *********************************************************************// + IVBSAXXMLFilterDisp = dispinterface + ['{1299EB1B-5B88-433E-82DE-82CA75AD4E04}'] + property parent: IVBSAXXMLReader dispid 1309; + end; + +// *********************************************************************// +// Interface: IVBSAXLexicalHandler +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {032AAC35-8C0E-4D9D-979F-E3B702935576} +// *********************************************************************// + IVBSAXLexicalHandler = interface(IDispatch) + ['{032AAC35-8C0E-4D9D-979F-E3B702935576}'] + procedure startDTD(var strName: WideString; var strPublicId: WideString; + var strSystemId: WideString); safecall; + procedure endDTD; safecall; + procedure startEntity(var strName: WideString); safecall; + procedure endEntity(var strName: WideString); safecall; + procedure startCDATA; safecall; + procedure endCDATA; safecall; + procedure comment(var strChars: WideString); safecall; + end; + +// *********************************************************************// +// DispIntf: IVBSAXLexicalHandlerDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {032AAC35-8C0E-4D9D-979F-E3B702935576} +// *********************************************************************// + IVBSAXLexicalHandlerDisp = dispinterface + ['{032AAC35-8C0E-4D9D-979F-E3B702935576}'] + procedure startDTD(var strName: WideString; var strPublicId: WideString; + var strSystemId: WideString); dispid 1358; + procedure endDTD; dispid 1359; + procedure startEntity(var strName: WideString); dispid 1360; + procedure endEntity(var strName: WideString); dispid 1361; + procedure startCDATA; dispid 1362; + procedure endCDATA; dispid 1363; + procedure comment(var strChars: WideString); dispid 1364; + end; + +// *********************************************************************// +// Interface: IVBSAXDeclHandler +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {E8917260-7579-4BE1-B5DD-7AFBFA6F077B} +// *********************************************************************// + IVBSAXDeclHandler = interface(IDispatch) + ['{E8917260-7579-4BE1-B5DD-7AFBFA6F077B}'] + procedure elementDecl(var strName: WideString; var strModel: WideString); safecall; + procedure attributeDecl(var strElementName: WideString; var strAttributeName: WideString; + var strType: WideString; var strValueDefault: WideString; + var strValue: WideString); safecall; + procedure internalEntityDecl(var strName: WideString; var strValue: WideString); safecall; + procedure externalEntityDecl(var strName: WideString; var strPublicId: WideString; + var strSystemId: WideString); safecall; + end; + +// *********************************************************************// +// DispIntf: IVBSAXDeclHandlerDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {E8917260-7579-4BE1-B5DD-7AFBFA6F077B} +// *********************************************************************// + IVBSAXDeclHandlerDisp = dispinterface + ['{E8917260-7579-4BE1-B5DD-7AFBFA6F077B}'] + procedure elementDecl(var strName: WideString; var strModel: WideString); dispid 1367; + procedure attributeDecl(var strElementName: WideString; var strAttributeName: WideString; + var strType: WideString; var strValueDefault: WideString; + var strValue: WideString); dispid 1368; + procedure internalEntityDecl(var strName: WideString; var strValue: WideString); dispid 1369; + procedure externalEntityDecl(var strName: WideString; var strPublicId: WideString; + var strSystemId: WideString); dispid 1370; + end; + +// *********************************************************************// +// Interface: IMXWriter +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {4D7FF4BA-1565-4EA8-94E1-6E724A46F98D} +// *********************************************************************// + IMXWriter = interface(IDispatch) + ['{4D7FF4BA-1565-4EA8-94E1-6E724A46F98D}'] + procedure Set_output(varDestination: OleVariant); safecall; + function Get_output: OleVariant; safecall; + procedure Set_encoding(const strEncoding: WideString); safecall; + function Get_encoding: WideString; safecall; + procedure Set_byteOrderMark(fWriteByteOrderMark: WordBool); safecall; + function Get_byteOrderMark: WordBool; safecall; + procedure Set_indent(fIndentMode: WordBool); safecall; + function Get_indent: WordBool; safecall; + procedure Set_standalone(fValue: WordBool); safecall; + function Get_standalone: WordBool; safecall; + procedure Set_omitXMLDeclaration(fValue: WordBool); safecall; + function Get_omitXMLDeclaration: WordBool; safecall; + procedure Set_version(const strVersion: WideString); safecall; + function Get_version: WideString; safecall; + procedure Set_disableOutputEscaping(fValue: WordBool); safecall; + function Get_disableOutputEscaping: WordBool; safecall; + procedure flush; safecall; + property output: OleVariant read Get_output write Set_output; + property encoding: WideString read Get_encoding write Set_encoding; + property byteOrderMark: WordBool read Get_byteOrderMark write Set_byteOrderMark; + property indent: WordBool read Get_indent write Set_indent; + property standalone: WordBool read Get_standalone write Set_standalone; + property omitXMLDeclaration: WordBool read Get_omitXMLDeclaration write Set_omitXMLDeclaration; + property version: WideString read Get_version write Set_version; + property disableOutputEscaping: WordBool read Get_disableOutputEscaping write Set_disableOutputEscaping; + end; + +// *********************************************************************// +// DispIntf: IMXWriterDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {4D7FF4BA-1565-4EA8-94E1-6E724A46F98D} +// *********************************************************************// + IMXWriterDisp = dispinterface + ['{4D7FF4BA-1565-4EA8-94E1-6E724A46F98D}'] + property output: OleVariant dispid 1385; + property encoding: WideString dispid 1387; + property byteOrderMark: WordBool dispid 1388; + property indent: WordBool dispid 1389; + property standalone: WordBool dispid 1390; + property omitXMLDeclaration: WordBool dispid 1391; + property version: WideString dispid 1392; + property disableOutputEscaping: WordBool dispid 1393; + procedure flush; dispid 1394; + end; + +// *********************************************************************// +// Interface: IMXAttributes +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {F10D27CC-3EC0-415C-8ED8-77AB1C5E7262} +// *********************************************************************// + IMXAttributes = interface(IDispatch) + ['{F10D27CC-3EC0-415C-8ED8-77AB1C5E7262}'] + procedure addAttribute(const strURI: WideString; const strLocalName: WideString; + const strQName: WideString; const strType: WideString; + const strValue: WideString); safecall; + procedure addAttributeFromIndex(varAtts: OleVariant; nIndex: SYSINT); safecall; + procedure clear; safecall; + procedure removeAttribute(nIndex: SYSINT); safecall; + procedure setAttribute(nIndex: SYSINT; const strURI: WideString; + const strLocalName: WideString; const strQName: WideString; + const strType: WideString; const strValue: WideString); safecall; + procedure setAttributes(varAtts: OleVariant); safecall; + procedure setLocalName(nIndex: SYSINT; const strLocalName: WideString); safecall; + procedure setQName(nIndex: SYSINT; const strQName: WideString); safecall; + procedure setType(nIndex: SYSINT; const strType: WideString); safecall; + procedure setURI(nIndex: SYSINT; const strURI: WideString); safecall; + procedure setValue(nIndex: SYSINT; const strValue: WideString); safecall; + end; + +// *********************************************************************// +// DispIntf: IMXAttributesDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {F10D27CC-3EC0-415C-8ED8-77AB1C5E7262} +// *********************************************************************// + IMXAttributesDisp = dispinterface + ['{F10D27CC-3EC0-415C-8ED8-77AB1C5E7262}'] + procedure addAttribute(const strURI: WideString; const strLocalName: WideString; + const strQName: WideString; const strType: WideString; + const strValue: WideString); dispid 1373; + procedure addAttributeFromIndex(varAtts: OleVariant; nIndex: SYSINT); dispid 1383; + procedure clear; dispid 1374; + procedure removeAttribute(nIndex: SYSINT); dispid 1375; + procedure setAttribute(nIndex: SYSINT; const strURI: WideString; + const strLocalName: WideString; const strQName: WideString; + const strType: WideString; const strValue: WideString); dispid 1376; + procedure setAttributes(varAtts: OleVariant); dispid 1377; + procedure setLocalName(nIndex: SYSINT; const strLocalName: WideString); dispid 1378; + procedure setQName(nIndex: SYSINT; const strQName: WideString); dispid 1379; + procedure setType(nIndex: SYSINT; const strType: WideString); dispid 1380; + procedure setURI(nIndex: SYSINT; const strURI: WideString); dispid 1381; + procedure setValue(nIndex: SYSINT; const strValue: WideString); dispid 1382; + end; + +// *********************************************************************// +// Interface: IMXReaderControl +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {808F4E35-8D5A-4FBE-8466-33A41279ED30} +// *********************************************************************// + IMXReaderControl = interface(IDispatch) + ['{808F4E35-8D5A-4FBE-8466-33A41279ED30}'] + procedure abort; safecall; + procedure resume; safecall; + procedure suspend; safecall; + end; + +// *********************************************************************// +// DispIntf: IMXReaderControlDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {808F4E35-8D5A-4FBE-8466-33A41279ED30} +// *********************************************************************// + IMXReaderControlDisp = dispinterface + ['{808F4E35-8D5A-4FBE-8466-33A41279ED30}'] + procedure abort; dispid 1398; + procedure resume; dispid 1399; + procedure suspend; dispid 1400; + end; + +// *********************************************************************// +// Interface: IMXSchemaDeclHandler +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {FA4BB38C-FAF9-4CCA-9302-D1DD0FE520DB} +// *********************************************************************// + IMXSchemaDeclHandler = interface(IDispatch) + ['{FA4BB38C-FAF9-4CCA-9302-D1DD0FE520DB}'] + procedure schemaElementDecl(const oSchemaElement: ISchemaElement); safecall; + end; + +// *********************************************************************// +// DispIntf: IMXSchemaDeclHandlerDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {FA4BB38C-FAF9-4CCA-9302-D1DD0FE520DB} +// *********************************************************************// + IMXSchemaDeclHandlerDisp = dispinterface + ['{FA4BB38C-FAF9-4CCA-9302-D1DD0FE520DB}'] + procedure schemaElementDecl(const oSchemaElement: ISchemaElement); dispid 1403; + end; + +// *********************************************************************// +// Interface: ISchemaItem +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B3-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaItem = interface(IDispatch) + ['{50EA08B3-DD1B-4664-9A50-C2F40F4BD79A}'] + function Get_name: WideString; safecall; + function Get_namespaceURI: WideString; safecall; + function Get_schema: ISchema; safecall; + function Get_id: WideString; safecall; + function Get_itemType: SOMITEMTYPE; safecall; + function Get_unhandledAttributes: IVBSAXAttributes; safecall; + function writeAnnotation(const annotationSink: IUnknown): WordBool; safecall; + property name: WideString read Get_name; + property namespaceURI: WideString read Get_namespaceURI; + property schema: ISchema read Get_schema; + property id: WideString read Get_id; + property itemType: SOMITEMTYPE read Get_itemType; + property unhandledAttributes: IVBSAXAttributes read Get_unhandledAttributes; + end; + +// *********************************************************************// +// DispIntf: ISchemaItemDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B3-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaItemDisp = dispinterface + ['{50EA08B3-DD1B-4664-9A50-C2F40F4BD79A}'] + property name: WideString readonly dispid 1457; + property namespaceURI: WideString readonly dispid 1459; + property schema: ISchema readonly dispid 1467; + property id: WideString readonly dispid 1440; + property itemType: SOMITEMTYPE readonly dispid 1446; + property unhandledAttributes: IVBSAXAttributes readonly dispid 1478; + function writeAnnotation(const annotationSink: IUnknown): WordBool; dispid 1483; + end; + +// *********************************************************************// +// Interface: ISchemaParticle +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B5-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaParticle = interface(ISchemaItem) + ['{50EA08B5-DD1B-4664-9A50-C2F40F4BD79A}'] + procedure GhostMethod_ISchemaParticle_0_1; safecall; + procedure GhostMethod_ISchemaParticle_4_2; safecall; + procedure GhostMethod_ISchemaParticle_8_3; safecall; + procedure GhostMethod_ISchemaParticle_12_4; safecall; + procedure GhostMethod_ISchemaParticle_16_5; safecall; + procedure GhostMethod_ISchemaParticle_20_6; safecall; + procedure GhostMethod_ISchemaParticle_24_7; safecall; + procedure GhostMethod_ISchemaParticle_28_8; safecall; + procedure GhostMethod_ISchemaParticle_32_9; safecall; + procedure GhostMethod_ISchemaParticle_36_10; safecall; + procedure GhostMethod_ISchemaParticle_40_11; safecall; + procedure GhostMethod_ISchemaParticle_44_12; safecall; + procedure GhostMethod_ISchemaParticle_48_13; safecall; + procedure GhostMethod_ISchemaParticle_52_14; safecall; + function Get_minOccurs: OleVariant; safecall; + function Get_maxOccurs: OleVariant; safecall; + property minOccurs: OleVariant read Get_minOccurs; + property maxOccurs: OleVariant read Get_maxOccurs; + end; + +// *********************************************************************// +// DispIntf: ISchemaParticleDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B5-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaParticleDisp = dispinterface + ['{50EA08B5-DD1B-4664-9A50-C2F40F4BD79A}'] + procedure GhostMethod_ISchemaParticle_0_1; dispid 1610678272; + procedure GhostMethod_ISchemaParticle_4_2; dispid 1610678273; + procedure GhostMethod_ISchemaParticle_8_3; dispid 1610678274; + procedure GhostMethod_ISchemaParticle_12_4; dispid 1610678275; + procedure GhostMethod_ISchemaParticle_16_5; dispid 1610678276; + procedure GhostMethod_ISchemaParticle_20_6; dispid 1610678277; + procedure GhostMethod_ISchemaParticle_24_7; dispid 1610678278; + procedure GhostMethod_ISchemaParticle_28_8; dispid 1610678279; + procedure GhostMethod_ISchemaParticle_32_9; dispid 1610678280; + procedure GhostMethod_ISchemaParticle_36_10; dispid 1610678281; + procedure GhostMethod_ISchemaParticle_40_11; dispid 1610678282; + procedure GhostMethod_ISchemaParticle_44_12; dispid 1610678283; + procedure GhostMethod_ISchemaParticle_48_13; dispid 1610678284; + procedure GhostMethod_ISchemaParticle_52_14; dispid 1610678285; + property minOccurs: OleVariant readonly dispid 1455; + property maxOccurs: OleVariant readonly dispid 1451; + property name: WideString readonly dispid 1457; + property namespaceURI: WideString readonly dispid 1459; + property schema: ISchema readonly dispid 1467; + property id: WideString readonly dispid 1440; + property itemType: SOMITEMTYPE readonly dispid 1446; + property unhandledAttributes: IVBSAXAttributes readonly dispid 1478; + function writeAnnotation(const annotationSink: IUnknown): WordBool; dispid 1483; + end; + +// *********************************************************************// +// Interface: ISchemaElement +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B7-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaElement = interface(ISchemaParticle) + ['{50EA08B7-DD1B-4664-9A50-C2F40F4BD79A}'] + procedure GhostMethod_ISchemaElement_0_1; safecall; + procedure GhostMethod_ISchemaElement_4_2; safecall; + procedure GhostMethod_ISchemaElement_8_3; safecall; + procedure GhostMethod_ISchemaElement_12_4; safecall; + procedure GhostMethod_ISchemaElement_16_5; safecall; + procedure GhostMethod_ISchemaElement_20_6; safecall; + procedure GhostMethod_ISchemaElement_24_7; safecall; + procedure GhostMethod_ISchemaElement_28_8; safecall; + procedure GhostMethod_ISchemaElement_32_9; safecall; + procedure GhostMethod_ISchemaElement_36_10; safecall; + procedure GhostMethod_ISchemaElement_40_11; safecall; + procedure GhostMethod_ISchemaElement_44_12; safecall; + procedure GhostMethod_ISchemaElement_48_13; safecall; + procedure GhostMethod_ISchemaElement_52_14; safecall; + procedure GhostMethod_ISchemaElement_56_15; safecall; + procedure GhostMethod_ISchemaElement_60_16; safecall; + function Get_type_: ISchemaType; safecall; + function Get_scope: ISchemaComplexType; safecall; + function Get_defaultValue: WideString; safecall; + function Get_fixedValue: WideString; safecall; + function Get_isNillable: WordBool; safecall; + function Get_identityConstraints: ISchemaItemCollection; safecall; + function Get_substitutionGroup: ISchemaElement; safecall; + function Get_substitutionGroupExclusions: SCHEMADERIVATIONMETHOD; safecall; + function Get_disallowedSubstitutions: SCHEMADERIVATIONMETHOD; safecall; + function Get_isAbstract: WordBool; safecall; + function Get_isReference: WordBool; safecall; + property type_: ISchemaType read Get_type_; + property scope: ISchemaComplexType read Get_scope; + property defaultValue: WideString read Get_defaultValue; + property fixedValue: WideString read Get_fixedValue; + property isNillable: WordBool read Get_isNillable; + property identityConstraints: ISchemaItemCollection read Get_identityConstraints; + property substitutionGroup: ISchemaElement read Get_substitutionGroup; + property substitutionGroupExclusions: SCHEMADERIVATIONMETHOD read Get_substitutionGroupExclusions; + property disallowedSubstitutions: SCHEMADERIVATIONMETHOD read Get_disallowedSubstitutions; + property isAbstract: WordBool read Get_isAbstract; + property isReference: WordBool read Get_isReference; + end; + +// *********************************************************************// +// DispIntf: ISchemaElementDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B7-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaElementDisp = dispinterface + ['{50EA08B7-DD1B-4664-9A50-C2F40F4BD79A}'] + procedure GhostMethod_ISchemaElement_0_1; dispid 1610678272; + procedure GhostMethod_ISchemaElement_4_2; dispid 1610678273; + procedure GhostMethod_ISchemaElement_8_3; dispid 1610678274; + procedure GhostMethod_ISchemaElement_12_4; dispid 1610678275; + procedure GhostMethod_ISchemaElement_16_5; dispid 1610678276; + procedure GhostMethod_ISchemaElement_20_6; dispid 1610678277; + procedure GhostMethod_ISchemaElement_24_7; dispid 1610678278; + procedure GhostMethod_ISchemaElement_28_8; dispid 1610678279; + procedure GhostMethod_ISchemaElement_32_9; dispid 1610678280; + procedure GhostMethod_ISchemaElement_36_10; dispid 1610678281; + procedure GhostMethod_ISchemaElement_40_11; dispid 1610678282; + procedure GhostMethod_ISchemaElement_44_12; dispid 1610678283; + procedure GhostMethod_ISchemaElement_48_13; dispid 1610678284; + procedure GhostMethod_ISchemaElement_52_14; dispid 1610678285; + procedure GhostMethod_ISchemaElement_56_15; dispid 1610678286; + procedure GhostMethod_ISchemaElement_60_16; dispid 1610678287; + property type_: ISchemaType readonly dispid 1476; + property scope: ISchemaComplexType readonly dispid 1469; + property defaultValue: WideString readonly dispid 1431; + property fixedValue: WideString readonly dispid 1438; + property isNillable: WordBool readonly dispid 1443; + property identityConstraints: ISchemaItemCollection readonly dispid 1441; + property substitutionGroup: ISchemaElement readonly dispid 1471; + property substitutionGroupExclusions: SCHEMADERIVATIONMETHOD readonly dispid 1472; + property disallowedSubstitutions: SCHEMADERIVATIONMETHOD readonly dispid 1433; + property isAbstract: WordBool readonly dispid 1442; + property isReference: WordBool readonly dispid 1444; + procedure GhostMethod_ISchemaParticle_0_1; dispid 1610678272; + procedure GhostMethod_ISchemaParticle_4_2; dispid 1610678273; + procedure GhostMethod_ISchemaParticle_8_3; dispid 1610678274; + procedure GhostMethod_ISchemaParticle_12_4; dispid 1610678275; + procedure GhostMethod_ISchemaParticle_16_5; dispid 1610678276; + procedure GhostMethod_ISchemaParticle_20_6; dispid 1610678277; + procedure GhostMethod_ISchemaParticle_24_7; dispid 1610678278; + procedure GhostMethod_ISchemaParticle_28_8; dispid 1610678279; + procedure GhostMethod_ISchemaParticle_32_9; dispid 1610678280; + procedure GhostMethod_ISchemaParticle_36_10; dispid 1610678281; + procedure GhostMethod_ISchemaParticle_40_11; dispid 1610678282; + procedure GhostMethod_ISchemaParticle_44_12; dispid 1610678283; + procedure GhostMethod_ISchemaParticle_48_13; dispid 1610678284; + procedure GhostMethod_ISchemaParticle_52_14; dispid 1610678285; + property minOccurs: OleVariant readonly dispid 1455; + property maxOccurs: OleVariant readonly dispid 1451; + property name: WideString readonly dispid 1457; + property namespaceURI: WideString readonly dispid 1459; + property schema: ISchema readonly dispid 1467; + property id: WideString readonly dispid 1440; + property itemType: SOMITEMTYPE readonly dispid 1446; + property unhandledAttributes: IVBSAXAttributes readonly dispid 1478; + function writeAnnotation(const annotationSink: IUnknown): WordBool; dispid 1483; + end; + +// *********************************************************************// +// Interface: ISchema +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B4-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchema = interface(ISchemaItem) + ['{50EA08B4-DD1B-4664-9A50-C2F40F4BD79A}'] + function Get_targetNamespace: WideString; safecall; + function Get_version: WideString; safecall; + function Get_types: ISchemaItemCollection; safecall; + function Get_elements: ISchemaItemCollection; safecall; + function Get_attributes: ISchemaItemCollection; safecall; + function Get_attributeGroups: ISchemaItemCollection; safecall; + function Get_modelGroups: ISchemaItemCollection; safecall; + function Get_notations: ISchemaItemCollection; safecall; + function Get_schemaLocations: ISchemaStringCollection; safecall; + property targetNamespace: WideString read Get_targetNamespace; + property version: WideString read Get_version; + property types: ISchemaItemCollection read Get_types; + property elements: ISchemaItemCollection read Get_elements; + property attributes: ISchemaItemCollection read Get_attributes; + property attributeGroups: ISchemaItemCollection read Get_attributeGroups; + property modelGroups: ISchemaItemCollection read Get_modelGroups; + property notations: ISchemaItemCollection read Get_notations; + property schemaLocations: ISchemaStringCollection read Get_schemaLocations; + end; + +// *********************************************************************// +// DispIntf: ISchemaDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B4-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaDisp = dispinterface + ['{50EA08B4-DD1B-4664-9A50-C2F40F4BD79A}'] + property targetNamespace: WideString readonly dispid 1474; + property version: WideString readonly dispid 1481; + property types: ISchemaItemCollection readonly dispid 1477; + property elements: ISchemaItemCollection readonly dispid 1434; + property attributes: ISchemaItemCollection readonly dispid 1427; + property attributeGroups: ISchemaItemCollection readonly dispid 1426; + property modelGroups: ISchemaItemCollection readonly dispid 1456; + property notations: ISchemaItemCollection readonly dispid 1460; + property schemaLocations: ISchemaStringCollection readonly dispid 1468; + property name: WideString readonly dispid 1457; + property namespaceURI: WideString readonly dispid 1459; + property schema: ISchema readonly dispid 1467; + property id: WideString readonly dispid 1440; + property itemType: SOMITEMTYPE readonly dispid 1446; + property unhandledAttributes: IVBSAXAttributes readonly dispid 1478; + function writeAnnotation(const annotationSink: IUnknown): WordBool; dispid 1483; + end; + +// *********************************************************************// +// Interface: ISchemaItemCollection +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B2-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaItemCollection = interface(IDispatch) + ['{50EA08B2-DD1B-4664-9A50-C2F40F4BD79A}'] + function Get_item(index: Integer): ISchemaItem; safecall; + function itemByName(const name: WideString): ISchemaItem; safecall; + function itemByQName(const name: WideString; const namespaceURI: WideString): ISchemaItem; safecall; + function Get_length: Integer; safecall; + function Get__newEnum: IUnknown; safecall; + property item[index: Integer]: ISchemaItem read Get_item; default; + property length: Integer read Get_length; + property _newEnum: IUnknown read Get__newEnum; + end; + +// *********************************************************************// +// DispIntf: ISchemaItemCollectionDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B2-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaItemCollectionDisp = dispinterface + ['{50EA08B2-DD1B-4664-9A50-C2F40F4BD79A}'] + property item[index: Integer]: ISchemaItem readonly dispid 0; default; + function itemByName(const name: WideString): ISchemaItem; dispid 1423; + function itemByQName(const name: WideString; const namespaceURI: WideString): ISchemaItem; dispid 1424; + property length: Integer readonly dispid 1447; + property _newEnum: IUnknown readonly dispid -4; + end; + +// *********************************************************************// +// Interface: ISchemaStringCollection +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B1-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaStringCollection = interface(IDispatch) + ['{50EA08B1-DD1B-4664-9A50-C2F40F4BD79A}'] + function Get_item(index: Integer): WideString; safecall; + function Get_length: Integer; safecall; + function Get__newEnum: IUnknown; safecall; + property item[index: Integer]: WideString read Get_item; default; + property length: Integer read Get_length; + property _newEnum: IUnknown read Get__newEnum; + end; + +// *********************************************************************// +// DispIntf: ISchemaStringCollectionDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B1-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaStringCollectionDisp = dispinterface + ['{50EA08B1-DD1B-4664-9A50-C2F40F4BD79A}'] + property item[index: Integer]: WideString readonly dispid 0; default; + property length: Integer readonly dispid 1447; + property _newEnum: IUnknown readonly dispid -4; + end; + +// *********************************************************************// +// Interface: ISchemaType +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B8-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaType = interface(ISchemaItem) + ['{50EA08B8-DD1B-4664-9A50-C2F40F4BD79A}'] + function Get_baseTypes: ISchemaItemCollection; safecall; + function Get_final: SCHEMADERIVATIONMETHOD; safecall; + function Get_variety: SCHEMATYPEVARIETY; safecall; + function Get_derivedBy: SCHEMADERIVATIONMETHOD; safecall; + function isValid(const data: WideString): WordBool; safecall; + function Get_minExclusive: WideString; safecall; + function Get_minInclusive: WideString; safecall; + function Get_maxExclusive: WideString; safecall; + function Get_maxInclusive: WideString; safecall; + function Get_totalDigits: OleVariant; safecall; + function Get_fractionDigits: OleVariant; safecall; + function Get_length: OleVariant; safecall; + function Get_minLength: OleVariant; safecall; + function Get_maxLength: OleVariant; safecall; + function Get_enumeration: ISchemaStringCollection; safecall; + function Get_whitespace: SCHEMAWHITESPACE; safecall; + function Get_patterns: ISchemaStringCollection; safecall; + property baseTypes: ISchemaItemCollection read Get_baseTypes; + property final: SCHEMADERIVATIONMETHOD read Get_final; + property variety: SCHEMATYPEVARIETY read Get_variety; + property derivedBy: SCHEMADERIVATIONMETHOD read Get_derivedBy; + property minExclusive: WideString read Get_minExclusive; + property minInclusive: WideString read Get_minInclusive; + property maxExclusive: WideString read Get_maxExclusive; + property maxInclusive: WideString read Get_maxInclusive; + property totalDigits: OleVariant read Get_totalDigits; + property fractionDigits: OleVariant read Get_fractionDigits; + property length: OleVariant read Get_length; + property minLength: OleVariant read Get_minLength; + property maxLength: OleVariant read Get_maxLength; + property enumeration: ISchemaStringCollection read Get_enumeration; + property whitespace: SCHEMAWHITESPACE read Get_whitespace; + property patterns: ISchemaStringCollection read Get_patterns; + end; + +// *********************************************************************// +// DispIntf: ISchemaTypeDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B8-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaTypeDisp = dispinterface + ['{50EA08B8-DD1B-4664-9A50-C2F40F4BD79A}'] + property baseTypes: ISchemaItemCollection readonly dispid 1428; + property final: SCHEMADERIVATIONMETHOD readonly dispid 1437; + property variety: SCHEMATYPEVARIETY readonly dispid 1480; + property derivedBy: SCHEMADERIVATIONMETHOD readonly dispid 1432; + function isValid(const data: WideString): WordBool; dispid 1445; + property minExclusive: WideString readonly dispid 1452; + property minInclusive: WideString readonly dispid 1453; + property maxExclusive: WideString readonly dispid 1448; + property maxInclusive: WideString readonly dispid 1449; + property totalDigits: OleVariant readonly dispid 1475; + property fractionDigits: OleVariant readonly dispid 1439; + property length: OleVariant readonly dispid 1447; + property minLength: OleVariant readonly dispid 1454; + property maxLength: OleVariant readonly dispid 1450; + property enumeration: ISchemaStringCollection readonly dispid 1435; + property whitespace: SCHEMAWHITESPACE readonly dispid 1482; + property patterns: ISchemaStringCollection readonly dispid 1462; + property name: WideString readonly dispid 1457; + property namespaceURI: WideString readonly dispid 1459; + property schema: ISchema readonly dispid 1467; + property id: WideString readonly dispid 1440; + property itemType: SOMITEMTYPE readonly dispid 1446; + property unhandledAttributes: IVBSAXAttributes readonly dispid 1478; + function writeAnnotation(const annotationSink: IUnknown): WordBool; dispid 1483; + end; + +// *********************************************************************// +// Interface: ISchemaComplexType +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B9-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaComplexType = interface(ISchemaType) + ['{50EA08B9-DD1B-4664-9A50-C2F40F4BD79A}'] + function Get_isAbstract: WordBool; safecall; + function Get_anyAttribute: ISchemaAny; safecall; + function Get_attributes: ISchemaItemCollection; safecall; + function Get_contentType: SCHEMACONTENTTYPE; safecall; + function Get_contentModel: ISchemaModelGroup; safecall; + function Get_prohibitedSubstitutions: SCHEMADERIVATIONMETHOD; safecall; + property isAbstract: WordBool read Get_isAbstract; + property anyAttribute: ISchemaAny read Get_anyAttribute; + property attributes: ISchemaItemCollection read Get_attributes; + property contentType: SCHEMACONTENTTYPE read Get_contentType; + property contentModel: ISchemaModelGroup read Get_contentModel; + property prohibitedSubstitutions: SCHEMADERIVATIONMETHOD read Get_prohibitedSubstitutions; + end; + +// *********************************************************************// +// DispIntf: ISchemaComplexTypeDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B9-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaComplexTypeDisp = dispinterface + ['{50EA08B9-DD1B-4664-9A50-C2F40F4BD79A}'] + property isAbstract: WordBool readonly dispid 1442; + property anyAttribute: ISchemaAny readonly dispid 1425; + property attributes: ISchemaItemCollection readonly dispid 1427; + property contentType: SCHEMACONTENTTYPE readonly dispid 1430; + property contentModel: ISchemaModelGroup readonly dispid 1429; + property prohibitedSubstitutions: SCHEMADERIVATIONMETHOD readonly dispid 1464; + property baseTypes: ISchemaItemCollection readonly dispid 1428; + property final: SCHEMADERIVATIONMETHOD readonly dispid 1437; + property variety: SCHEMATYPEVARIETY readonly dispid 1480; + property derivedBy: SCHEMADERIVATIONMETHOD readonly dispid 1432; + function isValid(const data: WideString): WordBool; dispid 1445; + property minExclusive: WideString readonly dispid 1452; + property minInclusive: WideString readonly dispid 1453; + property maxExclusive: WideString readonly dispid 1448; + property maxInclusive: WideString readonly dispid 1449; + property totalDigits: OleVariant readonly dispid 1475; + property fractionDigits: OleVariant readonly dispid 1439; + property length: OleVariant readonly dispid 1447; + property minLength: OleVariant readonly dispid 1454; + property maxLength: OleVariant readonly dispid 1450; + property enumeration: ISchemaStringCollection readonly dispid 1435; + property whitespace: SCHEMAWHITESPACE readonly dispid 1482; + property patterns: ISchemaStringCollection readonly dispid 1462; + property name: WideString readonly dispid 1457; + property namespaceURI: WideString readonly dispid 1459; + property schema: ISchema readonly dispid 1467; + property id: WideString readonly dispid 1440; + property itemType: SOMITEMTYPE readonly dispid 1446; + property unhandledAttributes: IVBSAXAttributes readonly dispid 1478; + function writeAnnotation(const annotationSink: IUnknown): WordBool; dispid 1483; + end; + +// *********************************************************************// +// Interface: ISchemaAny +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08BC-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaAny = interface(ISchemaParticle) + ['{50EA08BC-DD1B-4664-9A50-C2F40F4BD79A}'] + function Get_namespaces: ISchemaStringCollection; safecall; + function Get_processContents: SCHEMAPROCESSCONTENTS; safecall; + property namespaces: ISchemaStringCollection read Get_namespaces; + property processContents: SCHEMAPROCESSCONTENTS read Get_processContents; + end; + +// *********************************************************************// +// DispIntf: ISchemaAnyDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08BC-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaAnyDisp = dispinterface + ['{50EA08BC-DD1B-4664-9A50-C2F40F4BD79A}'] + property namespaces: ISchemaStringCollection readonly dispid 1458; + property processContents: SCHEMAPROCESSCONTENTS readonly dispid 1463; + procedure GhostMethod_ISchemaParticle_0_1; dispid 1610678272; + procedure GhostMethod_ISchemaParticle_4_2; dispid 1610678273; + procedure GhostMethod_ISchemaParticle_8_3; dispid 1610678274; + procedure GhostMethod_ISchemaParticle_12_4; dispid 1610678275; + procedure GhostMethod_ISchemaParticle_16_5; dispid 1610678276; + procedure GhostMethod_ISchemaParticle_20_6; dispid 1610678277; + procedure GhostMethod_ISchemaParticle_24_7; dispid 1610678278; + procedure GhostMethod_ISchemaParticle_28_8; dispid 1610678279; + procedure GhostMethod_ISchemaParticle_32_9; dispid 1610678280; + procedure GhostMethod_ISchemaParticle_36_10; dispid 1610678281; + procedure GhostMethod_ISchemaParticle_40_11; dispid 1610678282; + procedure GhostMethod_ISchemaParticle_44_12; dispid 1610678283; + procedure GhostMethod_ISchemaParticle_48_13; dispid 1610678284; + procedure GhostMethod_ISchemaParticle_52_14; dispid 1610678285; + property minOccurs: OleVariant readonly dispid 1455; + property maxOccurs: OleVariant readonly dispid 1451; + property name: WideString readonly dispid 1457; + property namespaceURI: WideString readonly dispid 1459; + property schema: ISchema readonly dispid 1467; + property id: WideString readonly dispid 1440; + property itemType: SOMITEMTYPE readonly dispid 1446; + property unhandledAttributes: IVBSAXAttributes readonly dispid 1478; + function writeAnnotation(const annotationSink: IUnknown): WordBool; dispid 1483; + end; + +// *********************************************************************// +// Interface: ISchemaModelGroup +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08BB-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaModelGroup = interface(ISchemaParticle) + ['{50EA08BB-DD1B-4664-9A50-C2F40F4BD79A}'] + function Get_particles: ISchemaItemCollection; safecall; + property particles: ISchemaItemCollection read Get_particles; + end; + +// *********************************************************************// +// DispIntf: ISchemaModelGroupDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08BB-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaModelGroupDisp = dispinterface + ['{50EA08BB-DD1B-4664-9A50-C2F40F4BD79A}'] + property particles: ISchemaItemCollection readonly dispid 1461; + procedure GhostMethod_ISchemaParticle_0_1; dispid 1610678272; + procedure GhostMethod_ISchemaParticle_4_2; dispid 1610678273; + procedure GhostMethod_ISchemaParticle_8_3; dispid 1610678274; + procedure GhostMethod_ISchemaParticle_12_4; dispid 1610678275; + procedure GhostMethod_ISchemaParticle_16_5; dispid 1610678276; + procedure GhostMethod_ISchemaParticle_20_6; dispid 1610678277; + procedure GhostMethod_ISchemaParticle_24_7; dispid 1610678278; + procedure GhostMethod_ISchemaParticle_28_8; dispid 1610678279; + procedure GhostMethod_ISchemaParticle_32_9; dispid 1610678280; + procedure GhostMethod_ISchemaParticle_36_10; dispid 1610678281; + procedure GhostMethod_ISchemaParticle_40_11; dispid 1610678282; + procedure GhostMethod_ISchemaParticle_44_12; dispid 1610678283; + procedure GhostMethod_ISchemaParticle_48_13; dispid 1610678284; + procedure GhostMethod_ISchemaParticle_52_14; dispid 1610678285; + property minOccurs: OleVariant readonly dispid 1455; + property maxOccurs: OleVariant readonly dispid 1451; + property name: WideString readonly dispid 1457; + property namespaceURI: WideString readonly dispid 1459; + property schema: ISchema readonly dispid 1467; + property id: WideString readonly dispid 1440; + property itemType: SOMITEMTYPE readonly dispid 1446; + property unhandledAttributes: IVBSAXAttributes readonly dispid 1478; + function writeAnnotation(const annotationSink: IUnknown): WordBool; dispid 1483; + end; + +// *********************************************************************// +// Interface: IMXXMLFilter +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {C90352F7-643C-4FBC-BB23-E996EB2D51FD} +// *********************************************************************// + IMXXMLFilter = interface(IDispatch) + ['{C90352F7-643C-4FBC-BB23-E996EB2D51FD}'] + function getFeature(const strName: WideString): WordBool; safecall; + procedure putFeature(const strName: WideString; fValue: WordBool); safecall; + function getProperty(const strName: WideString): OleVariant; safecall; + procedure putProperty(const strName: WideString; varValue: OleVariant); safecall; + function Get_entityResolver: IUnknown; safecall; + procedure _Set_entityResolver(const oResolver: IUnknown); safecall; + function Get_contentHandler: IUnknown; safecall; + procedure _Set_contentHandler(const oHandler: IUnknown); safecall; + function Get_dtdHandler: IUnknown; safecall; + procedure _Set_dtdHandler(const oHandler: IUnknown); safecall; + function Get_errorHandler: IUnknown; safecall; + procedure _Set_errorHandler(const oHandler: IUnknown); safecall; + property entityResolver: IUnknown read Get_entityResolver write _Set_entityResolver; + property contentHandler: IUnknown read Get_contentHandler write _Set_contentHandler; + property dtdHandler: IUnknown read Get_dtdHandler write _Set_dtdHandler; + property errorHandler: IUnknown read Get_errorHandler write _Set_errorHandler; + end; + +// *********************************************************************// +// DispIntf: IMXXMLFilterDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {C90352F7-643C-4FBC-BB23-E996EB2D51FD} +// *********************************************************************// + IMXXMLFilterDisp = dispinterface + ['{C90352F7-643C-4FBC-BB23-E996EB2D51FD}'] + function getFeature(const strName: WideString): WordBool; dispid 1423; + procedure putFeature(const strName: WideString; fValue: WordBool); dispid 1425; + function getProperty(const strName: WideString): OleVariant; dispid 1424; + procedure putProperty(const strName: WideString; varValue: OleVariant); dispid 1426; + property entityResolver: IUnknown dispid 1421; + property contentHandler: IUnknown dispid 1419; + property dtdHandler: IUnknown dispid 1420; + property errorHandler: IUnknown dispid 1422; + end; + +// *********************************************************************// +// Interface: IXMLDOMSchemaCollection2 +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B0-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + IXMLDOMSchemaCollection2 = interface(IXMLDOMSchemaCollection) + ['{50EA08B0-DD1B-4664-9A50-C2F40F4BD79A}'] + procedure validate; safecall; + procedure Set_validateOnLoad(validateOnLoad: WordBool); safecall; + function Get_validateOnLoad: WordBool; safecall; + function getSchema(const namespaceURI: WideString): ISchema; safecall; + function getDeclaration(const node: IXMLDOMNode): ISchemaItem; safecall; + property validateOnLoad: WordBool read Get_validateOnLoad write Set_validateOnLoad; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMSchemaCollection2Disp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B0-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + IXMLDOMSchemaCollection2Disp = dispinterface + ['{50EA08B0-DD1B-4664-9A50-C2F40F4BD79A}'] + procedure validate; dispid 1419; + property validateOnLoad: WordBool dispid 1420; + function getSchema(const namespaceURI: WideString): ISchema; dispid 1421; + function getDeclaration(const node: IXMLDOMNode): ISchemaItem; dispid 1422; + procedure add(const namespaceURI: WideString; var_: OleVariant); dispid 3; + function get(const namespaceURI: WideString): IXMLDOMNode; dispid 4; + procedure remove(const namespaceURI: WideString); dispid 5; + property length: Integer readonly dispid 6; + property namespaceURI[index: Integer]: WideString readonly dispid 0; default; + procedure addCollection(const otherCollection: IXMLDOMSchemaCollection); dispid 8; + property _newEnum: IUnknown readonly dispid -4; + end; + +// *********************************************************************// +// Interface: ISchemaAttribute +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B6-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaAttribute = interface(ISchemaItem) + ['{50EA08B6-DD1B-4664-9A50-C2F40F4BD79A}'] + function Get_type_: ISchemaType; safecall; + function Get_scope: ISchemaComplexType; safecall; + function Get_defaultValue: WideString; safecall; + function Get_fixedValue: WideString; safecall; + function Get_use: SCHEMAUSE; safecall; + function Get_isReference: WordBool; safecall; + property type_: ISchemaType read Get_type_; + property scope: ISchemaComplexType read Get_scope; + property defaultValue: WideString read Get_defaultValue; + property fixedValue: WideString read Get_fixedValue; + property use: SCHEMAUSE read Get_use; + property isReference: WordBool read Get_isReference; + end; + +// *********************************************************************// +// DispIntf: ISchemaAttributeDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08B6-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaAttributeDisp = dispinterface + ['{50EA08B6-DD1B-4664-9A50-C2F40F4BD79A}'] + property type_: ISchemaType readonly dispid 1476; + property scope: ISchemaComplexType readonly dispid 1469; + property defaultValue: WideString readonly dispid 1431; + property fixedValue: WideString readonly dispid 1438; + property use: SCHEMAUSE readonly dispid 1479; + property isReference: WordBool readonly dispid 1444; + property name: WideString readonly dispid 1457; + property namespaceURI: WideString readonly dispid 1459; + property schema: ISchema readonly dispid 1467; + property id: WideString readonly dispid 1440; + property itemType: SOMITEMTYPE readonly dispid 1446; + property unhandledAttributes: IVBSAXAttributes readonly dispid 1478; + function writeAnnotation(const annotationSink: IUnknown): WordBool; dispid 1483; + end; + +// *********************************************************************// +// Interface: ISchemaAttributeGroup +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08BA-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaAttributeGroup = interface(ISchemaItem) + ['{50EA08BA-DD1B-4664-9A50-C2F40F4BD79A}'] + function Get_anyAttribute: ISchemaAny; safecall; + function Get_attributes: ISchemaItemCollection; safecall; + property anyAttribute: ISchemaAny read Get_anyAttribute; + property attributes: ISchemaItemCollection read Get_attributes; + end; + +// *********************************************************************// +// DispIntf: ISchemaAttributeGroupDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08BA-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaAttributeGroupDisp = dispinterface + ['{50EA08BA-DD1B-4664-9A50-C2F40F4BD79A}'] + property anyAttribute: ISchemaAny readonly dispid 1425; + property attributes: ISchemaItemCollection readonly dispid 1427; + property name: WideString readonly dispid 1457; + property namespaceURI: WideString readonly dispid 1459; + property schema: ISchema readonly dispid 1467; + property id: WideString readonly dispid 1440; + property itemType: SOMITEMTYPE readonly dispid 1446; + property unhandledAttributes: IVBSAXAttributes readonly dispid 1478; + function writeAnnotation(const annotationSink: IUnknown): WordBool; dispid 1483; + end; + +// *********************************************************************// +// Interface: ISchemaIdentityConstraint +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08BD-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaIdentityConstraint = interface(ISchemaItem) + ['{50EA08BD-DD1B-4664-9A50-C2F40F4BD79A}'] + function Get_selector: WideString; safecall; + function Get_fields: ISchemaStringCollection; safecall; + function Get_referencedKey: ISchemaIdentityConstraint; safecall; + property selector: WideString read Get_selector; + property fields: ISchemaStringCollection read Get_fields; + property referencedKey: ISchemaIdentityConstraint read Get_referencedKey; + end; + +// *********************************************************************// +// DispIntf: ISchemaIdentityConstraintDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08BD-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaIdentityConstraintDisp = dispinterface + ['{50EA08BD-DD1B-4664-9A50-C2F40F4BD79A}'] + property selector: WideString readonly dispid 1470; + property fields: ISchemaStringCollection readonly dispid 1436; + property referencedKey: ISchemaIdentityConstraint readonly dispid 1466; + property name: WideString readonly dispid 1457; + property namespaceURI: WideString readonly dispid 1459; + property schema: ISchema readonly dispid 1467; + property id: WideString readonly dispid 1440; + property itemType: SOMITEMTYPE readonly dispid 1446; + property unhandledAttributes: IVBSAXAttributes readonly dispid 1478; + function writeAnnotation(const annotationSink: IUnknown): WordBool; dispid 1483; + end; + +// *********************************************************************// +// Interface: ISchemaNotation +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08BE-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaNotation = interface(ISchemaItem) + ['{50EA08BE-DD1B-4664-9A50-C2F40F4BD79A}'] + function Get_systemIdentifier: WideString; safecall; + function Get_publicIdentifier: WideString; safecall; + property systemIdentifier: WideString read Get_systemIdentifier; + property publicIdentifier: WideString read Get_publicIdentifier; + end; + +// *********************************************************************// +// DispIntf: ISchemaNotationDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {50EA08BE-DD1B-4664-9A50-C2F40F4BD79A} +// *********************************************************************// + ISchemaNotationDisp = dispinterface + ['{50EA08BE-DD1B-4664-9A50-C2F40F4BD79A}'] + property systemIdentifier: WideString readonly dispid 1473; + property publicIdentifier: WideString readonly dispid 1465; + property name: WideString readonly dispid 1457; + property namespaceURI: WideString readonly dispid 1459; + property schema: ISchema readonly dispid 1467; + property id: WideString readonly dispid 1440; + property itemType: SOMITEMTYPE readonly dispid 1446; + property unhandledAttributes: IVBSAXAttributes readonly dispid 1478; + function writeAnnotation(const annotationSink: IUnknown): WordBool; dispid 1483; + end; + +// *********************************************************************// +// Interface: IXMLDOMSelection +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {AA634FC7-5888-44A7-A257-3A47150D3A0E} +// *********************************************************************// + IXMLDOMSelection = interface(IXMLDOMNodeList) + ['{AA634FC7-5888-44A7-A257-3A47150D3A0E}'] + function Get_expr: WideString; safecall; + procedure Set_expr(const expression: WideString); safecall; + function Get_context: IXMLDOMNode; safecall; + procedure _Set_context(const ppNode: IXMLDOMNode); safecall; + function peekNode: IXMLDOMNode; safecall; + function matches(const pNode: IXMLDOMNode): IXMLDOMNode; safecall; + function removeNext: IXMLDOMNode; safecall; + procedure removeAll; safecall; + function clone: IXMLDOMSelection; safecall; + function getProperty(const name: WideString): OleVariant; safecall; + procedure setProperty(const name: WideString; value: OleVariant); safecall; + property expr: WideString read Get_expr write Set_expr; + property context: IXMLDOMNode read Get_context write _Set_context; + end; + +// *********************************************************************// +// DispIntf: IXMLDOMSelectionDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {AA634FC7-5888-44A7-A257-3A47150D3A0E} +// *********************************************************************// + IXMLDOMSelectionDisp = dispinterface + ['{AA634FC7-5888-44A7-A257-3A47150D3A0E}'] + property expr: WideString dispid 81; + property context: IXMLDOMNode dispid 82; + function peekNode: IXMLDOMNode; dispid 83; + function matches(const pNode: IXMLDOMNode): IXMLDOMNode; dispid 84; + function removeNext: IXMLDOMNode; dispid 85; + procedure removeAll; dispid 86; + function clone: IXMLDOMSelection; dispid 87; + function getProperty(const name: WideString): OleVariant; dispid 88; + procedure setProperty(const name: WideString; value: OleVariant); dispid 89; + property item[index: Integer]: IXMLDOMNode readonly dispid 0; default; + property length: Integer readonly dispid 74; + function nextNode: IXMLDOMNode; dispid 76; + procedure reset; dispid 77; + property _newEnum: IUnknown readonly dispid -4; + end; + +// *********************************************************************// +// DispIntf: XMLDOMDocumentEvents +// Flags: (4112) Hidden Dispatchable +// GUID: {3EFAA427-272F-11D2-836F-0000F87A7782} +// *********************************************************************// + XMLDOMDocumentEvents = dispinterface + ['{3EFAA427-272F-11D2-836F-0000F87A7782}'] + procedure ondataavailable; dispid 198; + procedure onreadystatechange; dispid -609; + end; + +// *********************************************************************// +// Interface: IDSOControl +// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable +// GUID: {310AFA62-0575-11D2-9CA9-0060B0EC3D39} +// *********************************************************************// + IDSOControl = interface(IDispatch) + ['{310AFA62-0575-11D2-9CA9-0060B0EC3D39}'] + function Get_XMLDocument: IXMLDOMDocument; safecall; + procedure Set_XMLDocument(const ppDoc: IXMLDOMDocument); safecall; + function Get_JavaDSOCompatible: Integer; safecall; + procedure Set_JavaDSOCompatible(fJavaDSOCompatible: Integer); safecall; + function Get_readyState: Integer; safecall; + property XMLDocument: IXMLDOMDocument read Get_XMLDocument write Set_XMLDocument; + property JavaDSOCompatible: Integer read Get_JavaDSOCompatible write Set_JavaDSOCompatible; + property readyState: Integer read Get_readyState; + end; + +// *********************************************************************// +// DispIntf: IDSOControlDisp +// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable +// GUID: {310AFA62-0575-11D2-9CA9-0060B0EC3D39} +// *********************************************************************// + IDSOControlDisp = dispinterface + ['{310AFA62-0575-11D2-9CA9-0060B0EC3D39}'] + property XMLDocument: IXMLDOMDocument dispid 65537; + property JavaDSOCompatible: Integer dispid 65538; + property readyState: Integer readonly dispid -525; + end; + +// *********************************************************************// +// Interface: IXMLHTTPRequest +// Flags: (4416) Dual OleAutomation Dispatchable +// GUID: {ED8C108D-4349-11D2-91A4-00C04F7969E8} +// *********************************************************************// + IXMLHTTPRequest = interface(IDispatch) + ['{ED8C108D-4349-11D2-91A4-00C04F7969E8}'] + procedure open(const bstrMethod: WideString; const bstrUrl: WideString; varAsync: OleVariant; + bstrUser: OleVariant; bstrPassword: OleVariant); safecall; + procedure setRequestHeader(const bstrHeader: WideString; const bstrValue: WideString); safecall; + function getResponseHeader(const bstrHeader: WideString): WideString; safecall; + function getAllResponseHeaders: WideString; safecall; + procedure send(varBody: OleVariant); safecall; + procedure abort; safecall; + function Get_status: Integer; safecall; + function Get_statusText: WideString; safecall; + function Get_responseXML: IDispatch; safecall; + function Get_responseText: WideString; safecall; + function Get_responseBody: OleVariant; safecall; + function Get_responseStream: OleVariant; safecall; + function Get_readyState: Integer; safecall; + procedure Set_onreadystatechange(const Param1: IDispatch); safecall; + property status: Integer read Get_status; + property statusText: WideString read Get_statusText; + property responseXML: IDispatch read Get_responseXML; + property responseText: WideString read Get_responseText; + property responseBody: OleVariant read Get_responseBody; + property responseStream: OleVariant read Get_responseStream; + property readyState: Integer read Get_readyState; + property onreadystatechange: IDispatch write Set_onreadystatechange; + end; + +// *********************************************************************// +// DispIntf: IXMLHTTPRequestDisp +// Flags: (4416) Dual OleAutomation Dispatchable +// GUID: {ED8C108D-4349-11D2-91A4-00C04F7969E8} +// *********************************************************************// + IXMLHTTPRequestDisp = dispinterface + ['{ED8C108D-4349-11D2-91A4-00C04F7969E8}'] + procedure open(const bstrMethod: WideString; const bstrUrl: WideString; varAsync: OleVariant; + bstrUser: OleVariant; bstrPassword: OleVariant); dispid 1; + procedure setRequestHeader(const bstrHeader: WideString; const bstrValue: WideString); dispid 2; + function getResponseHeader(const bstrHeader: WideString): WideString; dispid 3; + function getAllResponseHeaders: WideString; dispid 4; + procedure send(varBody: OleVariant); dispid 5; + procedure abort; dispid 6; + property status: Integer readonly dispid 7; + property statusText: WideString readonly dispid 8; + property responseXML: IDispatch readonly dispid 9; + property responseText: WideString readonly dispid 10; + property responseBody: OleVariant readonly dispid 11; + property responseStream: OleVariant readonly dispid 12; + property readyState: Integer readonly dispid 13; + property onreadystatechange: IDispatch writeonly dispid 14; + end; + +// *********************************************************************// +// Interface: IServerXMLHTTPRequest +// Flags: (4416) Dual OleAutomation Dispatchable +// GUID: {2E9196BF-13BA-4DD4-91CA-6C571F281495} +// *********************************************************************// + IServerXMLHTTPRequest = interface(IXMLHTTPRequest) + ['{2E9196BF-13BA-4DD4-91CA-6C571F281495}'] + procedure setTimeouts(resolveTimeout: Integer; connectTimeout: Integer; sendTimeout: Integer; + receiveTimeout: Integer); safecall; + function waitForResponse(timeoutInSeconds: OleVariant): WordBool; safecall; + function getOption(option: SERVERXMLHTTP_OPTION): OleVariant; safecall; + procedure setOption(option: SERVERXMLHTTP_OPTION; value: OleVariant); safecall; + end; + +// *********************************************************************// +// DispIntf: IServerXMLHTTPRequestDisp +// Flags: (4416) Dual OleAutomation Dispatchable +// GUID: {2E9196BF-13BA-4DD4-91CA-6C571F281495} +// *********************************************************************// + IServerXMLHTTPRequestDisp = dispinterface + ['{2E9196BF-13BA-4DD4-91CA-6C571F281495}'] + procedure setTimeouts(resolveTimeout: Integer; connectTimeout: Integer; sendTimeout: Integer; + receiveTimeout: Integer); dispid 15; + function waitForResponse(timeoutInSeconds: OleVariant): WordBool; dispid 16; + function getOption(option: SERVERXMLHTTP_OPTION): OleVariant; dispid 17; + procedure setOption(option: SERVERXMLHTTP_OPTION; value: OleVariant); dispid 18; + procedure open(const bstrMethod: WideString; const bstrUrl: WideString; varAsync: OleVariant; + bstrUser: OleVariant; bstrPassword: OleVariant); dispid 1; + procedure setRequestHeader(const bstrHeader: WideString; const bstrValue: WideString); dispid 2; + function getResponseHeader(const bstrHeader: WideString): WideString; dispid 3; + function getAllResponseHeaders: WideString; dispid 4; + procedure send(varBody: OleVariant); dispid 5; + procedure abort; dispid 6; + property status: Integer readonly dispid 7; + property statusText: WideString readonly dispid 8; + property responseXML: IDispatch readonly dispid 9; + property responseText: WideString readonly dispid 10; + property responseBody: OleVariant readonly dispid 11; + property responseStream: OleVariant readonly dispid 12; + property readyState: Integer readonly dispid 13; + property onreadystatechange: IDispatch writeonly dispid 14; + end; + +// *********************************************************************// +// Interface: IServerXMLHTTPRequest2 +// Flags: (4416) Dual OleAutomation Dispatchable +// GUID: {2E01311B-C322-4B0A-BD77-B90CFDC8DCE7} +// *********************************************************************// + IServerXMLHTTPRequest2 = interface(IServerXMLHTTPRequest) + ['{2E01311B-C322-4B0A-BD77-B90CFDC8DCE7}'] + procedure setProxy(proxySetting: SXH_PROXY_SETTING; varProxyServer: OleVariant; + varBypassList: OleVariant); safecall; + procedure setProxyCredentials(const bstrUserName: WideString; const bstrPassword: WideString); safecall; + end; + +// *********************************************************************// +// DispIntf: IServerXMLHTTPRequest2Disp +// Flags: (4416) Dual OleAutomation Dispatchable +// GUID: {2E01311B-C322-4B0A-BD77-B90CFDC8DCE7} +// *********************************************************************// + IServerXMLHTTPRequest2Disp = dispinterface + ['{2E01311B-C322-4B0A-BD77-B90CFDC8DCE7}'] + procedure setProxy(proxySetting: SXH_PROXY_SETTING; varProxyServer: OleVariant; + varBypassList: OleVariant); dispid 19; + procedure setProxyCredentials(const bstrUserName: WideString; const bstrPassword: WideString); dispid 20; + procedure setTimeouts(resolveTimeout: Integer; connectTimeout: Integer; sendTimeout: Integer; + receiveTimeout: Integer); dispid 15; + function waitForResponse(timeoutInSeconds: OleVariant): WordBool; dispid 16; + function getOption(option: SERVERXMLHTTP_OPTION): OleVariant; dispid 17; + procedure setOption(option: SERVERXMLHTTP_OPTION; value: OleVariant); dispid 18; + procedure open(const bstrMethod: WideString; const bstrUrl: WideString; varAsync: OleVariant; + bstrUser: OleVariant; bstrPassword: OleVariant); dispid 1; + procedure setRequestHeader(const bstrHeader: WideString; const bstrValue: WideString); dispid 2; + function getResponseHeader(const bstrHeader: WideString): WideString; dispid 3; + function getAllResponseHeaders: WideString; dispid 4; + procedure send(varBody: OleVariant); dispid 5; + procedure abort; dispid 6; + property status: Integer readonly dispid 7; + property statusText: WideString readonly dispid 8; + property responseXML: IDispatch readonly dispid 9; + property responseText: WideString readonly dispid 10; + property responseBody: OleVariant readonly dispid 11; + property responseStream: OleVariant readonly dispid 12; + property readyState: Integer readonly dispid 13; + property onreadystatechange: IDispatch writeonly dispid 14; + end; + +// *********************************************************************// +// Interface: IMXNamespacePrefixes +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {C90352F4-643C-4FBC-BB23-E996EB2D51FD} +// *********************************************************************// + IMXNamespacePrefixes = interface(IDispatch) + ['{C90352F4-643C-4FBC-BB23-E996EB2D51FD}'] + function Get_item(index: Integer): WideString; safecall; + function Get_length: Integer; safecall; + function Get__newEnum: IUnknown; safecall; + property item[index: Integer]: WideString read Get_item; default; + property length: Integer read Get_length; + property _newEnum: IUnknown read Get__newEnum; + end; + +// *********************************************************************// +// DispIntf: IMXNamespacePrefixesDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {C90352F4-643C-4FBC-BB23-E996EB2D51FD} +// *********************************************************************// + IMXNamespacePrefixesDisp = dispinterface + ['{C90352F4-643C-4FBC-BB23-E996EB2D51FD}'] + property item[index: Integer]: WideString readonly dispid 0; default; + property length: Integer readonly dispid 1416; + property _newEnum: IUnknown readonly dispid -4; + end; + +// *********************************************************************// +// Interface: IVBMXNamespaceManager +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {C90352F5-643C-4FBC-BB23-E996EB2D51FD} +// *********************************************************************// + IVBMXNamespaceManager = interface(IDispatch) + ['{C90352F5-643C-4FBC-BB23-E996EB2D51FD}'] + procedure Set_allowOverride(fOverride: WordBool); safecall; + function Get_allowOverride: WordBool; safecall; + procedure reset; safecall; + procedure pushContext; safecall; + procedure pushNodeContext(const contextNode: IXMLDOMNode; fDeep: WordBool); safecall; + procedure popContext; safecall; + procedure declarePrefix(const prefix: WideString; const namespaceURI: WideString); safecall; + function getDeclaredPrefixes: IMXNamespacePrefixes; safecall; + function getPrefixes(const namespaceURI: WideString): IMXNamespacePrefixes; safecall; + function getURI(const prefix: WideString): OleVariant; safecall; + function getURIFromNode(const strPrefix: WideString; const contextNode: IXMLDOMNode): OleVariant; safecall; + property allowOverride: WordBool read Get_allowOverride write Set_allowOverride; + end; + +// *********************************************************************// +// DispIntf: IVBMXNamespaceManagerDisp +// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable +// GUID: {C90352F5-643C-4FBC-BB23-E996EB2D51FD} +// *********************************************************************// + IVBMXNamespaceManagerDisp = dispinterface + ['{C90352F5-643C-4FBC-BB23-E996EB2D51FD}'] + property allowOverride: WordBool dispid 1406; + procedure reset; dispid 1407; + procedure pushContext; dispid 1408; + procedure pushNodeContext(const contextNode: IXMLDOMNode; fDeep: WordBool); dispid 1409; + procedure popContext; dispid 1410; + procedure declarePrefix(const prefix: WideString; const namespaceURI: WideString); dispid 1411; + function getDeclaredPrefixes: IMXNamespacePrefixes; dispid 1412; + function getPrefixes(const namespaceURI: WideString): IMXNamespacePrefixes; dispid 1413; + function getURI(const prefix: WideString): OleVariant; dispid 1414; + function getURIFromNode(const strPrefix: WideString; const contextNode: IXMLDOMNode): OleVariant; dispid 1415; + end; + +// *********************************************************************// +// Interface: IMXNamespaceManager +// Flags: (16) Hidden +// GUID: {C90352F6-643C-4FBC-BB23-E996EB2D51FD} +// *********************************************************************// + IMXNamespaceManager = interface(IUnknown) + ['{C90352F6-643C-4FBC-BB23-E996EB2D51FD}'] + function putAllowOverride(fOverride: WordBool): HResult; stdcall; + function getAllowOverride(out fOverride: WordBool): HResult; stdcall; + function reset: HResult; stdcall; + function pushContext: HResult; stdcall; + function pushNodeContext(const contextNode: IXMLDOMNode; fDeep: WordBool): HResult; stdcall; + function popContext: HResult; stdcall; + function declarePrefix(var prefix: Word; var namespaceURI: Word): HResult; stdcall; + function getDeclaredPrefix(nIndex: Integer; var pwchPrefix: Word; var pcchPrefix: SYSINT): HResult; stdcall; + function getPrefix(var pwszNamespaceURI: Word; nIndex: Integer; var pwchPrefix: Word; + var pcchPrefix: SYSINT): HResult; stdcall; + function getURI(var pwchPrefix: Word; const pContextNode: IXMLDOMNode; var pwchUri: Word; + var pcchUri: SYSINT): HResult; stdcall; + end; + +// *********************************************************************// +// The Class CoDOMDocument provides a Create and CreateRemote method to +// create instances of the default interface IXMLDOMDocument2 exposed by +// the CoClass DOMDocument. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoDOMDocument = class + class function Create: IXMLDOMDocument2; + class function CreateRemote(const MachineName: string): IXMLDOMDocument2; + end; + +// *********************************************************************// +// The Class CoDOMDocument26 provides a Create and CreateRemote method to +// create instances of the default interface IXMLDOMDocument2 exposed by +// the CoClass DOMDocument26. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoDOMDocument26 = class + class function Create: IXMLDOMDocument2; + class function CreateRemote(const MachineName: string): IXMLDOMDocument2; + end; + +// *********************************************************************// +// The Class CoDOMDocument30 provides a Create and CreateRemote method to +// create instances of the default interface IXMLDOMDocument2 exposed by +// the CoClass DOMDocument30. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoDOMDocument30 = class + class function Create: IXMLDOMDocument2; + class function CreateRemote(const MachineName: string): IXMLDOMDocument2; + end; + +// *********************************************************************// +// The Class CoDOMDocument40 provides a Create and CreateRemote method to +// create instances of the default interface IXMLDOMDocument2 exposed by +// the CoClass DOMDocument40. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoDOMDocument40 = class + class function Create: IXMLDOMDocument2; + class function CreateRemote(const MachineName: string): IXMLDOMDocument2; + end; + +// *********************************************************************// +// The Class CoDOMDocument60 provides a Create and CreateRemote method to +// create instances of the default interface IXMLDOMDocument3 exposed by +// the CoClass DOMDocument60. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoDOMDocument60 = class + class function Create: IXMLDOMDocument3; + class function CreateRemote(const MachineName: string): IXMLDOMDocument3; + end; + +// *********************************************************************// +// The Class CoFreeThreadedDOMDocument provides a Create and CreateRemote method to +// create instances of the default interface IXMLDOMDocument2 exposed by +// the CoClass FreeThreadedDOMDocument. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoFreeThreadedDOMDocument = class + class function Create: IXMLDOMDocument2; + class function CreateRemote(const MachineName: string): IXMLDOMDocument2; + end; + +// *********************************************************************// +// The Class CoFreeThreadedDOMDocument26 provides a Create and CreateRemote method to +// create instances of the default interface IXMLDOMDocument2 exposed by +// the CoClass FreeThreadedDOMDocument26. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoFreeThreadedDOMDocument26 = class + class function Create: IXMLDOMDocument2; + class function CreateRemote(const MachineName: string): IXMLDOMDocument2; + end; + +// *********************************************************************// +// The Class CoFreeThreadedDOMDocument30 provides a Create and CreateRemote method to +// create instances of the default interface IXMLDOMDocument2 exposed by +// the CoClass FreeThreadedDOMDocument30. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoFreeThreadedDOMDocument30 = class + class function Create: IXMLDOMDocument2; + class function CreateRemote(const MachineName: string): IXMLDOMDocument2; + end; + +// *********************************************************************// +// The Class CoFreeThreadedDOMDocument40 provides a Create and CreateRemote method to +// create instances of the default interface IXMLDOMDocument2 exposed by +// the CoClass FreeThreadedDOMDocument40. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoFreeThreadedDOMDocument40 = class + class function Create: IXMLDOMDocument2; + class function CreateRemote(const MachineName: string): IXMLDOMDocument2; + end; + +// *********************************************************************// +// The Class CoFreeThreadedDOMDocument60 provides a Create and CreateRemote method to +// create instances of the default interface IXMLDOMDocument3 exposed by +// the CoClass FreeThreadedDOMDocument60. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoFreeThreadedDOMDocument60 = class + class function Create: IXMLDOMDocument3; + class function CreateRemote(const MachineName: string): IXMLDOMDocument3; + end; + +// *********************************************************************// +// The Class CoXMLSchemaCache provides a Create and CreateRemote method to +// create instances of the default interface IXMLDOMSchemaCollection exposed by +// the CoClass XMLSchemaCache. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoXMLSchemaCache = class + class function Create: IXMLDOMSchemaCollection; + class function CreateRemote(const MachineName: string): IXMLDOMSchemaCollection; + end; + +// *********************************************************************// +// The Class CoXMLSchemaCache26 provides a Create and CreateRemote method to +// create instances of the default interface IXMLDOMSchemaCollection exposed by +// the CoClass XMLSchemaCache26. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoXMLSchemaCache26 = class + class function Create: IXMLDOMSchemaCollection; + class function CreateRemote(const MachineName: string): IXMLDOMSchemaCollection; + end; + +// *********************************************************************// +// The Class CoXMLSchemaCache30 provides a Create and CreateRemote method to +// create instances of the default interface IXMLDOMSchemaCollection exposed by +// the CoClass XMLSchemaCache30. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoXMLSchemaCache30 = class + class function Create: IXMLDOMSchemaCollection; + class function CreateRemote(const MachineName: string): IXMLDOMSchemaCollection; + end; + +// *********************************************************************// +// The Class CoXMLSchemaCache40 provides a Create and CreateRemote method to +// create instances of the default interface IXMLDOMSchemaCollection2 exposed by +// the CoClass XMLSchemaCache40. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoXMLSchemaCache40 = class + class function Create: IXMLDOMSchemaCollection2; + class function CreateRemote(const MachineName: string): IXMLDOMSchemaCollection2; + end; + +// *********************************************************************// +// The Class CoXMLSchemaCache60 provides a Create and CreateRemote method to +// create instances of the default interface IXMLDOMSchemaCollection2 exposed by +// the CoClass XMLSchemaCache60. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoXMLSchemaCache60 = class + class function Create: IXMLDOMSchemaCollection2; + class function CreateRemote(const MachineName: string): IXMLDOMSchemaCollection2; + end; + +// *********************************************************************// +// The Class CoXSLTemplate provides a Create and CreateRemote method to +// create instances of the default interface IXSLTemplate exposed by +// the CoClass XSLTemplate. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoXSLTemplate = class + class function Create: IXSLTemplate; + class function CreateRemote(const MachineName: string): IXSLTemplate; + end; + +// *********************************************************************// +// The Class CoXSLTemplate26 provides a Create and CreateRemote method to +// create instances of the default interface IXSLTemplate exposed by +// the CoClass XSLTemplate26. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoXSLTemplate26 = class + class function Create: IXSLTemplate; + class function CreateRemote(const MachineName: string): IXSLTemplate; + end; + +// *********************************************************************// +// The Class CoXSLTemplate30 provides a Create and CreateRemote method to +// create instances of the default interface IXSLTemplate exposed by +// the CoClass XSLTemplate30. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoXSLTemplate30 = class + class function Create: IXSLTemplate; + class function CreateRemote(const MachineName: string): IXSLTemplate; + end; + +// *********************************************************************// +// The Class CoXSLTemplate40 provides a Create and CreateRemote method to +// create instances of the default interface IXSLTemplate exposed by +// the CoClass XSLTemplate40. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoXSLTemplate40 = class + class function Create: IXSLTemplate; + class function CreateRemote(const MachineName: string): IXSLTemplate; + end; + +// *********************************************************************// +// The Class CoXSLTemplate60 provides a Create and CreateRemote method to +// create instances of the default interface IXSLTemplate exposed by +// the CoClass XSLTemplate60. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoXSLTemplate60 = class + class function Create: IXSLTemplate; + class function CreateRemote(const MachineName: string): IXSLTemplate; + end; + +// *********************************************************************// +// The Class CoDSOControl provides a Create and CreateRemote method to +// create instances of the default interface IDSOControl exposed by +// the CoClass DSOControl. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoDSOControl = class + class function Create: IDSOControl; + class function CreateRemote(const MachineName: string): IDSOControl; + end; + +// *********************************************************************// +// The Class CoDSOControl26 provides a Create and CreateRemote method to +// create instances of the default interface IDSOControl exposed by +// the CoClass DSOControl26. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoDSOControl26 = class + class function Create: IDSOControl; + class function CreateRemote(const MachineName: string): IDSOControl; + end; + +// *********************************************************************// +// The Class CoDSOControl30 provides a Create and CreateRemote method to +// create instances of the default interface IDSOControl exposed by +// the CoClass DSOControl30. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoDSOControl30 = class + class function Create: IDSOControl; + class function CreateRemote(const MachineName: string): IDSOControl; + end; + +// *********************************************************************// +// The Class CoDSOControl40 provides a Create and CreateRemote method to +// create instances of the default interface IDSOControl exposed by +// the CoClass DSOControl40. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoDSOControl40 = class + class function Create: IDSOControl; + class function CreateRemote(const MachineName: string): IDSOControl; + end; + +// *********************************************************************// +// The Class CoXMLHTTP provides a Create and CreateRemote method to +// create instances of the default interface IXMLHTTPRequest exposed by +// the CoClass XMLHTTP. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoXMLHTTP = class + class function Create: IXMLHTTPRequest; + class function CreateRemote(const MachineName: string): IXMLHTTPRequest; + end; + +// *********************************************************************// +// The Class CoXMLHTTP26 provides a Create and CreateRemote method to +// create instances of the default interface IXMLHTTPRequest exposed by +// the CoClass XMLHTTP26. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoXMLHTTP26 = class + class function Create: IXMLHTTPRequest; + class function CreateRemote(const MachineName: string): IXMLHTTPRequest; + end; + +// *********************************************************************// +// The Class CoXMLHTTP30 provides a Create and CreateRemote method to +// create instances of the default interface IXMLHTTPRequest exposed by +// the CoClass XMLHTTP30. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoXMLHTTP30 = class + class function Create: IXMLHTTPRequest; + class function CreateRemote(const MachineName: string): IXMLHTTPRequest; + end; + +// *********************************************************************// +// The Class CoXMLHTTP40 provides a Create and CreateRemote method to +// create instances of the default interface IXMLHTTPRequest exposed by +// the CoClass XMLHTTP40. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoXMLHTTP40 = class + class function Create: IXMLHTTPRequest; + class function CreateRemote(const MachineName: string): IXMLHTTPRequest; + end; + +// *********************************************************************// +// The Class CoXMLHTTP60 provides a Create and CreateRemote method to +// create instances of the default interface IXMLHTTPRequest exposed by +// the CoClass XMLHTTP60. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoXMLHTTP60 = class + class function Create: IXMLHTTPRequest; + class function CreateRemote(const MachineName: string): IXMLHTTPRequest; + end; + +// *********************************************************************// +// The Class CoServerXMLHTTP provides a Create and CreateRemote method to +// create instances of the default interface IServerXMLHTTPRequest exposed by +// the CoClass ServerXMLHTTP. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoServerXMLHTTP = class + class function Create: IServerXMLHTTPRequest; + class function CreateRemote(const MachineName: string): IServerXMLHTTPRequest; + end; + +// *********************************************************************// +// The Class CoServerXMLHTTP30 provides a Create and CreateRemote method to +// create instances of the default interface IServerXMLHTTPRequest exposed by +// the CoClass ServerXMLHTTP30. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoServerXMLHTTP30 = class + class function Create: IServerXMLHTTPRequest; + class function CreateRemote(const MachineName: string): IServerXMLHTTPRequest; + end; + +// *********************************************************************// +// The Class CoServerXMLHTTP40 provides a Create and CreateRemote method to +// create instances of the default interface IServerXMLHTTPRequest2 exposed by +// the CoClass ServerXMLHTTP40. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoServerXMLHTTP40 = class + class function Create: IServerXMLHTTPRequest2; + class function CreateRemote(const MachineName: string): IServerXMLHTTPRequest2; + end; + +// *********************************************************************// +// The Class CoServerXMLHTTP60 provides a Create and CreateRemote method to +// create instances of the default interface IServerXMLHTTPRequest2 exposed by +// the CoClass ServerXMLHTTP60. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoServerXMLHTTP60 = class + class function Create: IServerXMLHTTPRequest2; + class function CreateRemote(const MachineName: string): IServerXMLHTTPRequest2; + end; + +// *********************************************************************// +// The Class CoSAXXMLReader provides a Create and CreateRemote method to +// create instances of the default interface IVBSAXXMLReader exposed by +// the CoClass SAXXMLReader. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoSAXXMLReader = class + class function Create: IVBSAXXMLReader; + class function CreateRemote(const MachineName: string): IVBSAXXMLReader; + end; + +// *********************************************************************// +// The Class CoSAXXMLReader30 provides a Create and CreateRemote method to +// create instances of the default interface IVBSAXXMLReader exposed by +// the CoClass SAXXMLReader30. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoSAXXMLReader30 = class + class function Create: IVBSAXXMLReader; + class function CreateRemote(const MachineName: string): IVBSAXXMLReader; + end; + +// *********************************************************************// +// The Class CoSAXXMLReader40 provides a Create and CreateRemote method to +// create instances of the default interface IVBSAXXMLReader exposed by +// the CoClass SAXXMLReader40. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoSAXXMLReader40 = class + class function Create: IVBSAXXMLReader; + class function CreateRemote(const MachineName: string): IVBSAXXMLReader; + end; + +// *********************************************************************// +// The Class CoSAXXMLReader60 provides a Create and CreateRemote method to +// create instances of the default interface IVBSAXXMLReader exposed by +// the CoClass SAXXMLReader60. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoSAXXMLReader60 = class + class function Create: IVBSAXXMLReader; + class function CreateRemote(const MachineName: string): IVBSAXXMLReader; + end; + +// *********************************************************************// +// The Class CoMXXMLWriter provides a Create and CreateRemote method to +// create instances of the default interface IMXWriter exposed by +// the CoClass MXXMLWriter. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoMXXMLWriter = class + class function Create: IMXWriter; + class function CreateRemote(const MachineName: string): IMXWriter; + end; + +// *********************************************************************// +// The Class CoMXXMLWriter30 provides a Create and CreateRemote method to +// create instances of the default interface IMXWriter exposed by +// the CoClass MXXMLWriter30. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoMXXMLWriter30 = class + class function Create: IMXWriter; + class function CreateRemote(const MachineName: string): IMXWriter; + end; + +// *********************************************************************// +// The Class CoMXXMLWriter40 provides a Create and CreateRemote method to +// create instances of the default interface IMXWriter exposed by +// the CoClass MXXMLWriter40. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoMXXMLWriter40 = class + class function Create: IMXWriter; + class function CreateRemote(const MachineName: string): IMXWriter; + end; + +// *********************************************************************// +// The Class CoMXXMLWriter60 provides a Create and CreateRemote method to +// create instances of the default interface IMXWriter exposed by +// the CoClass MXXMLWriter60. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoMXXMLWriter60 = class + class function Create: IMXWriter; + class function CreateRemote(const MachineName: string): IMXWriter; + end; + +// *********************************************************************// +// The Class CoMXHTMLWriter provides a Create and CreateRemote method to +// create instances of the default interface IMXWriter exposed by +// the CoClass MXHTMLWriter. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoMXHTMLWriter = class + class function Create: IMXWriter; + class function CreateRemote(const MachineName: string): IMXWriter; + end; + +// *********************************************************************// +// The Class CoMXHTMLWriter30 provides a Create and CreateRemote method to +// create instances of the default interface IMXWriter exposed by +// the CoClass MXHTMLWriter30. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoMXHTMLWriter30 = class + class function Create: IMXWriter; + class function CreateRemote(const MachineName: string): IMXWriter; + end; + +// *********************************************************************// +// The Class CoMXHTMLWriter40 provides a Create and CreateRemote method to +// create instances of the default interface IMXWriter exposed by +// the CoClass MXHTMLWriter40. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoMXHTMLWriter40 = class + class function Create: IMXWriter; + class function CreateRemote(const MachineName: string): IMXWriter; + end; + +// *********************************************************************// +// The Class CoMXHTMLWriter60 provides a Create and CreateRemote method to +// create instances of the default interface IMXWriter exposed by +// the CoClass MXHTMLWriter60. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoMXHTMLWriter60 = class + class function Create: IMXWriter; + class function CreateRemote(const MachineName: string): IMXWriter; + end; + +// *********************************************************************// +// The Class CoSAXAttributes provides a Create and CreateRemote method to +// create instances of the default interface IMXAttributes exposed by +// the CoClass SAXAttributes. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoSAXAttributes = class + class function Create: IMXAttributes; + class function CreateRemote(const MachineName: string): IMXAttributes; + end; + +// *********************************************************************// +// The Class CoSAXAttributes30 provides a Create and CreateRemote method to +// create instances of the default interface IMXAttributes exposed by +// the CoClass SAXAttributes30. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoSAXAttributes30 = class + class function Create: IMXAttributes; + class function CreateRemote(const MachineName: string): IMXAttributes; + end; + +// *********************************************************************// +// The Class CoSAXAttributes40 provides a Create and CreateRemote method to +// create instances of the default interface IMXAttributes exposed by +// the CoClass SAXAttributes40. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoSAXAttributes40 = class + class function Create: IMXAttributes; + class function CreateRemote(const MachineName: string): IMXAttributes; + end; + +// *********************************************************************// +// The Class CoSAXAttributes60 provides a Create and CreateRemote method to +// create instances of the default interface IMXAttributes exposed by +// the CoClass SAXAttributes60. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoSAXAttributes60 = class + class function Create: IMXAttributes; + class function CreateRemote(const MachineName: string): IMXAttributes; + end; + +// *********************************************************************// +// The Class CoMXNamespaceManager provides a Create and CreateRemote method to +// create instances of the default interface IVBMXNamespaceManager exposed by +// the CoClass MXNamespaceManager. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoMXNamespaceManager = class + class function Create: IVBMXNamespaceManager; + class function CreateRemote(const MachineName: string): IVBMXNamespaceManager; + end; + +// *********************************************************************// +// The Class CoMXNamespaceManager40 provides a Create and CreateRemote method to +// create instances of the default interface IVBMXNamespaceManager exposed by +// the CoClass MXNamespaceManager40. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoMXNamespaceManager40 = class + class function Create: IVBMXNamespaceManager; + class function CreateRemote(const MachineName: string): IVBMXNamespaceManager; + end; + +// *********************************************************************// +// The Class CoMXNamespaceManager60 provides a Create and CreateRemote method to +// create instances of the default interface IVBMXNamespaceManager exposed by +// the CoClass MXNamespaceManager60. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoMXNamespaceManager60 = class + class function Create: IVBMXNamespaceManager; + class function CreateRemote(const MachineName: string): IVBMXNamespaceManager; + end; + +implementation + +uses ComObj; + +class function CoDOMDocument.Create: IXMLDOMDocument2; +begin + Result := CreateComObject(CLASS_DOMDocument) as IXMLDOMDocument2; +end; + +class function CoDOMDocument.CreateRemote(const MachineName: string): IXMLDOMDocument2; +begin + Result := CreateRemoteComObject(MachineName, CLASS_DOMDocument) as IXMLDOMDocument2; +end; + +class function CoDOMDocument26.Create: IXMLDOMDocument2; +begin + Result := CreateComObject(CLASS_DOMDocument26) as IXMLDOMDocument2; +end; + +class function CoDOMDocument26.CreateRemote(const MachineName: string): IXMLDOMDocument2; +begin + Result := CreateRemoteComObject(MachineName, CLASS_DOMDocument26) as IXMLDOMDocument2; +end; + +class function CoDOMDocument30.Create: IXMLDOMDocument2; +begin + Result := CreateComObject(CLASS_DOMDocument30) as IXMLDOMDocument2; +end; + +class function CoDOMDocument30.CreateRemote(const MachineName: string): IXMLDOMDocument2; +begin + Result := CreateRemoteComObject(MachineName, CLASS_DOMDocument30) as IXMLDOMDocument2; +end; + +class function CoDOMDocument40.Create: IXMLDOMDocument2; +begin + Result := CreateComObject(CLASS_DOMDocument40) as IXMLDOMDocument2; +end; + +class function CoDOMDocument40.CreateRemote(const MachineName: string): IXMLDOMDocument2; +begin + Result := CreateRemoteComObject(MachineName, CLASS_DOMDocument40) as IXMLDOMDocument2; +end; + +class function CoDOMDocument60.Create: IXMLDOMDocument3; +begin + Result := CreateComObject(CLASS_DOMDocument60) as IXMLDOMDocument3; +end; + +class function CoDOMDocument60.CreateRemote(const MachineName: string): IXMLDOMDocument3; +begin + Result := CreateRemoteComObject(MachineName, CLASS_DOMDocument60) as IXMLDOMDocument3; +end; + +class function CoFreeThreadedDOMDocument.Create: IXMLDOMDocument2; +begin + Result := CreateComObject(CLASS_FreeThreadedDOMDocument) as IXMLDOMDocument2; +end; + +class function CoFreeThreadedDOMDocument.CreateRemote(const MachineName: string): IXMLDOMDocument2; +begin + Result := CreateRemoteComObject(MachineName, CLASS_FreeThreadedDOMDocument) as IXMLDOMDocument2; +end; + +class function CoFreeThreadedDOMDocument26.Create: IXMLDOMDocument2; +begin + Result := CreateComObject(CLASS_FreeThreadedDOMDocument26) as IXMLDOMDocument2; +end; + +class function CoFreeThreadedDOMDocument26.CreateRemote(const MachineName: string): IXMLDOMDocument2; +begin + Result := CreateRemoteComObject(MachineName, CLASS_FreeThreadedDOMDocument26) as IXMLDOMDocument2; +end; + +class function CoFreeThreadedDOMDocument30.Create: IXMLDOMDocument2; +begin + Result := CreateComObject(CLASS_FreeThreadedDOMDocument30) as IXMLDOMDocument2; +end; + +class function CoFreeThreadedDOMDocument30.CreateRemote(const MachineName: string): IXMLDOMDocument2; +begin + Result := CreateRemoteComObject(MachineName, CLASS_FreeThreadedDOMDocument30) as IXMLDOMDocument2; +end; + +class function CoFreeThreadedDOMDocument40.Create: IXMLDOMDocument2; +begin + Result := CreateComObject(CLASS_FreeThreadedDOMDocument40) as IXMLDOMDocument2; +end; + +class function CoFreeThreadedDOMDocument40.CreateRemote(const MachineName: string): IXMLDOMDocument2; +begin + Result := CreateRemoteComObject(MachineName, CLASS_FreeThreadedDOMDocument40) as IXMLDOMDocument2; +end; + +class function CoFreeThreadedDOMDocument60.Create: IXMLDOMDocument3; +begin + Result := CreateComObject(CLASS_FreeThreadedDOMDocument60) as IXMLDOMDocument3; +end; + +class function CoFreeThreadedDOMDocument60.CreateRemote(const MachineName: string): IXMLDOMDocument3; +begin + Result := CreateRemoteComObject(MachineName, CLASS_FreeThreadedDOMDocument60) as IXMLDOMDocument3; +end; + +class function CoXMLSchemaCache.Create: IXMLDOMSchemaCollection; +begin + Result := CreateComObject(CLASS_XMLSchemaCache) as IXMLDOMSchemaCollection; +end; + +class function CoXMLSchemaCache.CreateRemote(const MachineName: string): IXMLDOMSchemaCollection; +begin + Result := CreateRemoteComObject(MachineName, CLASS_XMLSchemaCache) as IXMLDOMSchemaCollection; +end; + +class function CoXMLSchemaCache26.Create: IXMLDOMSchemaCollection; +begin + Result := CreateComObject(CLASS_XMLSchemaCache26) as IXMLDOMSchemaCollection; +end; + +class function CoXMLSchemaCache26.CreateRemote(const MachineName: string): IXMLDOMSchemaCollection; +begin + Result := CreateRemoteComObject(MachineName, CLASS_XMLSchemaCache26) as IXMLDOMSchemaCollection; +end; + +class function CoXMLSchemaCache30.Create: IXMLDOMSchemaCollection; +begin + Result := CreateComObject(CLASS_XMLSchemaCache30) as IXMLDOMSchemaCollection; +end; + +class function CoXMLSchemaCache30.CreateRemote(const MachineName: string): IXMLDOMSchemaCollection; +begin + Result := CreateRemoteComObject(MachineName, CLASS_XMLSchemaCache30) as IXMLDOMSchemaCollection; +end; + +class function CoXMLSchemaCache40.Create: IXMLDOMSchemaCollection2; +begin + Result := CreateComObject(CLASS_XMLSchemaCache40) as IXMLDOMSchemaCollection2; +end; + +class function CoXMLSchemaCache40.CreateRemote(const MachineName: string): IXMLDOMSchemaCollection2; +begin + Result := CreateRemoteComObject(MachineName, CLASS_XMLSchemaCache40) as IXMLDOMSchemaCollection2; +end; + +class function CoXMLSchemaCache60.Create: IXMLDOMSchemaCollection2; +begin + Result := CreateComObject(CLASS_XMLSchemaCache60) as IXMLDOMSchemaCollection2; +end; + +class function CoXMLSchemaCache60.CreateRemote(const MachineName: string): IXMLDOMSchemaCollection2; +begin + Result := CreateRemoteComObject(MachineName, CLASS_XMLSchemaCache60) as IXMLDOMSchemaCollection2; +end; + +class function CoXSLTemplate.Create: IXSLTemplate; +begin + Result := CreateComObject(CLASS_XSLTemplate) as IXSLTemplate; +end; + +class function CoXSLTemplate.CreateRemote(const MachineName: string): IXSLTemplate; +begin + Result := CreateRemoteComObject(MachineName, CLASS_XSLTemplate) as IXSLTemplate; +end; + +class function CoXSLTemplate26.Create: IXSLTemplate; +begin + Result := CreateComObject(CLASS_XSLTemplate26) as IXSLTemplate; +end; + +class function CoXSLTemplate26.CreateRemote(const MachineName: string): IXSLTemplate; +begin + Result := CreateRemoteComObject(MachineName, CLASS_XSLTemplate26) as IXSLTemplate; +end; + +class function CoXSLTemplate30.Create: IXSLTemplate; +begin + Result := CreateComObject(CLASS_XSLTemplate30) as IXSLTemplate; +end; + +class function CoXSLTemplate30.CreateRemote(const MachineName: string): IXSLTemplate; +begin + Result := CreateRemoteComObject(MachineName, CLASS_XSLTemplate30) as IXSLTemplate; +end; + +class function CoXSLTemplate40.Create: IXSLTemplate; +begin + Result := CreateComObject(CLASS_XSLTemplate40) as IXSLTemplate; +end; + +class function CoXSLTemplate40.CreateRemote(const MachineName: string): IXSLTemplate; +begin + Result := CreateRemoteComObject(MachineName, CLASS_XSLTemplate40) as IXSLTemplate; +end; + +class function CoXSLTemplate60.Create: IXSLTemplate; +begin + Result := CreateComObject(CLASS_XSLTemplate60) as IXSLTemplate; +end; + +class function CoXSLTemplate60.CreateRemote(const MachineName: string): IXSLTemplate; +begin + Result := CreateRemoteComObject(MachineName, CLASS_XSLTemplate60) as IXSLTemplate; +end; + +class function CoDSOControl.Create: IDSOControl; +begin + Result := CreateComObject(CLASS_DSOControl) as IDSOControl; +end; + +class function CoDSOControl.CreateRemote(const MachineName: string): IDSOControl; +begin + Result := CreateRemoteComObject(MachineName, CLASS_DSOControl) as IDSOControl; +end; + +class function CoDSOControl26.Create: IDSOControl; +begin + Result := CreateComObject(CLASS_DSOControl26) as IDSOControl; +end; + +class function CoDSOControl26.CreateRemote(const MachineName: string): IDSOControl; +begin + Result := CreateRemoteComObject(MachineName, CLASS_DSOControl26) as IDSOControl; +end; + +class function CoDSOControl30.Create: IDSOControl; +begin + Result := CreateComObject(CLASS_DSOControl30) as IDSOControl; +end; + +class function CoDSOControl30.CreateRemote(const MachineName: string): IDSOControl; +begin + Result := CreateRemoteComObject(MachineName, CLASS_DSOControl30) as IDSOControl; +end; + +class function CoDSOControl40.Create: IDSOControl; +begin + Result := CreateComObject(CLASS_DSOControl40) as IDSOControl; +end; + +class function CoDSOControl40.CreateRemote(const MachineName: string): IDSOControl; +begin + Result := CreateRemoteComObject(MachineName, CLASS_DSOControl40) as IDSOControl; +end; + +class function CoXMLHTTP.Create: IXMLHTTPRequest; +begin + Result := CreateComObject(CLASS_XMLHTTP) as IXMLHTTPRequest; +end; + +class function CoXMLHTTP.CreateRemote(const MachineName: string): IXMLHTTPRequest; +begin + Result := CreateRemoteComObject(MachineName, CLASS_XMLHTTP) as IXMLHTTPRequest; +end; + +class function CoXMLHTTP26.Create: IXMLHTTPRequest; +begin + Result := CreateComObject(CLASS_XMLHTTP26) as IXMLHTTPRequest; +end; + +class function CoXMLHTTP26.CreateRemote(const MachineName: string): IXMLHTTPRequest; +begin + Result := CreateRemoteComObject(MachineName, CLASS_XMLHTTP26) as IXMLHTTPRequest; +end; + +class function CoXMLHTTP30.Create: IXMLHTTPRequest; +begin + Result := CreateComObject(CLASS_XMLHTTP30) as IXMLHTTPRequest; +end; + +class function CoXMLHTTP30.CreateRemote(const MachineName: string): IXMLHTTPRequest; +begin + Result := CreateRemoteComObject(MachineName, CLASS_XMLHTTP30) as IXMLHTTPRequest; +end; + +class function CoXMLHTTP40.Create: IXMLHTTPRequest; +begin + Result := CreateComObject(CLASS_XMLHTTP40) as IXMLHTTPRequest; +end; + +class function CoXMLHTTP40.CreateRemote(const MachineName: string): IXMLHTTPRequest; +begin + Result := CreateRemoteComObject(MachineName, CLASS_XMLHTTP40) as IXMLHTTPRequest; +end; + +class function CoXMLHTTP60.Create: IXMLHTTPRequest; +begin + Result := CreateComObject(CLASS_XMLHTTP60) as IXMLHTTPRequest; +end; + +class function CoXMLHTTP60.CreateRemote(const MachineName: string): IXMLHTTPRequest; +begin + Result := CreateRemoteComObject(MachineName, CLASS_XMLHTTP60) as IXMLHTTPRequest; +end; + +class function CoServerXMLHTTP.Create: IServerXMLHTTPRequest; +begin + Result := CreateComObject(CLASS_ServerXMLHTTP) as IServerXMLHTTPRequest; +end; + +class function CoServerXMLHTTP.CreateRemote(const MachineName: string): IServerXMLHTTPRequest; +begin + Result := CreateRemoteComObject(MachineName, CLASS_ServerXMLHTTP) as IServerXMLHTTPRequest; +end; + +class function CoServerXMLHTTP30.Create: IServerXMLHTTPRequest; +begin + Result := CreateComObject(CLASS_ServerXMLHTTP30) as IServerXMLHTTPRequest; +end; + +class function CoServerXMLHTTP30.CreateRemote(const MachineName: string): IServerXMLHTTPRequest; +begin + Result := CreateRemoteComObject(MachineName, CLASS_ServerXMLHTTP30) as IServerXMLHTTPRequest; +end; + +class function CoServerXMLHTTP40.Create: IServerXMLHTTPRequest2; +begin + Result := CreateComObject(CLASS_ServerXMLHTTP40) as IServerXMLHTTPRequest2; +end; + +class function CoServerXMLHTTP40.CreateRemote(const MachineName: string): IServerXMLHTTPRequest2; +begin + Result := CreateRemoteComObject(MachineName, CLASS_ServerXMLHTTP40) as IServerXMLHTTPRequest2; +end; + +class function CoServerXMLHTTP60.Create: IServerXMLHTTPRequest2; +begin + Result := CreateComObject(CLASS_ServerXMLHTTP60) as IServerXMLHTTPRequest2; +end; + +class function CoServerXMLHTTP60.CreateRemote(const MachineName: string): IServerXMLHTTPRequest2; +begin + Result := CreateRemoteComObject(MachineName, CLASS_ServerXMLHTTP60) as IServerXMLHTTPRequest2; +end; + +class function CoSAXXMLReader.Create: IVBSAXXMLReader; +begin + Result := CreateComObject(CLASS_SAXXMLReader) as IVBSAXXMLReader; +end; + +class function CoSAXXMLReader.CreateRemote(const MachineName: string): IVBSAXXMLReader; +begin + Result := CreateRemoteComObject(MachineName, CLASS_SAXXMLReader) as IVBSAXXMLReader; +end; + +class function CoSAXXMLReader30.Create: IVBSAXXMLReader; +begin + Result := CreateComObject(CLASS_SAXXMLReader30) as IVBSAXXMLReader; +end; + +class function CoSAXXMLReader30.CreateRemote(const MachineName: string): IVBSAXXMLReader; +begin + Result := CreateRemoteComObject(MachineName, CLASS_SAXXMLReader30) as IVBSAXXMLReader; +end; + +class function CoSAXXMLReader40.Create: IVBSAXXMLReader; +begin + Result := CreateComObject(CLASS_SAXXMLReader40) as IVBSAXXMLReader; +end; + +class function CoSAXXMLReader40.CreateRemote(const MachineName: string): IVBSAXXMLReader; +begin + Result := CreateRemoteComObject(MachineName, CLASS_SAXXMLReader40) as IVBSAXXMLReader; +end; + +class function CoSAXXMLReader60.Create: IVBSAXXMLReader; +begin + Result := CreateComObject(CLASS_SAXXMLReader60) as IVBSAXXMLReader; +end; + +class function CoSAXXMLReader60.CreateRemote(const MachineName: string): IVBSAXXMLReader; +begin + Result := CreateRemoteComObject(MachineName, CLASS_SAXXMLReader60) as IVBSAXXMLReader; +end; + +class function CoMXXMLWriter.Create: IMXWriter; +begin + Result := CreateComObject(CLASS_MXXMLWriter) as IMXWriter; +end; + +class function CoMXXMLWriter.CreateRemote(const MachineName: string): IMXWriter; +begin + Result := CreateRemoteComObject(MachineName, CLASS_MXXMLWriter) as IMXWriter; +end; + +class function CoMXXMLWriter30.Create: IMXWriter; +begin + Result := CreateComObject(CLASS_MXXMLWriter30) as IMXWriter; +end; + +class function CoMXXMLWriter30.CreateRemote(const MachineName: string): IMXWriter; +begin + Result := CreateRemoteComObject(MachineName, CLASS_MXXMLWriter30) as IMXWriter; +end; + +class function CoMXXMLWriter40.Create: IMXWriter; +begin + Result := CreateComObject(CLASS_MXXMLWriter40) as IMXWriter; +end; + +class function CoMXXMLWriter40.CreateRemote(const MachineName: string): IMXWriter; +begin + Result := CreateRemoteComObject(MachineName, CLASS_MXXMLWriter40) as IMXWriter; +end; + +class function CoMXXMLWriter60.Create: IMXWriter; +begin + Result := CreateComObject(CLASS_MXXMLWriter60) as IMXWriter; +end; + +class function CoMXXMLWriter60.CreateRemote(const MachineName: string): IMXWriter; +begin + Result := CreateRemoteComObject(MachineName, CLASS_MXXMLWriter60) as IMXWriter; +end; + +class function CoMXHTMLWriter.Create: IMXWriter; +begin + Result := CreateComObject(CLASS_MXHTMLWriter) as IMXWriter; +end; + +class function CoMXHTMLWriter.CreateRemote(const MachineName: string): IMXWriter; +begin + Result := CreateRemoteComObject(MachineName, CLASS_MXHTMLWriter) as IMXWriter; +end; + +class function CoMXHTMLWriter30.Create: IMXWriter; +begin + Result := CreateComObject(CLASS_MXHTMLWriter30) as IMXWriter; +end; + +class function CoMXHTMLWriter30.CreateRemote(const MachineName: string): IMXWriter; +begin + Result := CreateRemoteComObject(MachineName, CLASS_MXHTMLWriter30) as IMXWriter; +end; + +class function CoMXHTMLWriter40.Create: IMXWriter; +begin + Result := CreateComObject(CLASS_MXHTMLWriter40) as IMXWriter; +end; + +class function CoMXHTMLWriter40.CreateRemote(const MachineName: string): IMXWriter; +begin + Result := CreateRemoteComObject(MachineName, CLASS_MXHTMLWriter40) as IMXWriter; +end; + +class function CoMXHTMLWriter60.Create: IMXWriter; +begin + Result := CreateComObject(CLASS_MXHTMLWriter60) as IMXWriter; +end; + +class function CoMXHTMLWriter60.CreateRemote(const MachineName: string): IMXWriter; +begin + Result := CreateRemoteComObject(MachineName, CLASS_MXHTMLWriter60) as IMXWriter; +end; + +class function CoSAXAttributes.Create: IMXAttributes; +begin + Result := CreateComObject(CLASS_SAXAttributes) as IMXAttributes; +end; + +class function CoSAXAttributes.CreateRemote(const MachineName: string): IMXAttributes; +begin + Result := CreateRemoteComObject(MachineName, CLASS_SAXAttributes) as IMXAttributes; +end; + +class function CoSAXAttributes30.Create: IMXAttributes; +begin + Result := CreateComObject(CLASS_SAXAttributes30) as IMXAttributes; +end; + +class function CoSAXAttributes30.CreateRemote(const MachineName: string): IMXAttributes; +begin + Result := CreateRemoteComObject(MachineName, CLASS_SAXAttributes30) as IMXAttributes; +end; + +class function CoSAXAttributes40.Create: IMXAttributes; +begin + Result := CreateComObject(CLASS_SAXAttributes40) as IMXAttributes; +end; + +class function CoSAXAttributes40.CreateRemote(const MachineName: string): IMXAttributes; +begin + Result := CreateRemoteComObject(MachineName, CLASS_SAXAttributes40) as IMXAttributes; +end; + +class function CoSAXAttributes60.Create: IMXAttributes; +begin + Result := CreateComObject(CLASS_SAXAttributes60) as IMXAttributes; +end; + +class function CoSAXAttributes60.CreateRemote(const MachineName: string): IMXAttributes; +begin + Result := CreateRemoteComObject(MachineName, CLASS_SAXAttributes60) as IMXAttributes; +end; + +class function CoMXNamespaceManager.Create: IVBMXNamespaceManager; +begin + Result := CreateComObject(CLASS_MXNamespaceManager) as IVBMXNamespaceManager; +end; + +class function CoMXNamespaceManager.CreateRemote(const MachineName: string): IVBMXNamespaceManager; +begin + Result := CreateRemoteComObject(MachineName, CLASS_MXNamespaceManager) as IVBMXNamespaceManager; +end; + +class function CoMXNamespaceManager40.Create: IVBMXNamespaceManager; +begin + Result := CreateComObject(CLASS_MXNamespaceManager40) as IVBMXNamespaceManager; +end; + +class function CoMXNamespaceManager40.CreateRemote(const MachineName: string): IVBMXNamespaceManager; +begin + Result := CreateRemoteComObject(MachineName, CLASS_MXNamespaceManager40) as IVBMXNamespaceManager; +end; + +class function CoMXNamespaceManager60.Create: IVBMXNamespaceManager; +begin + Result := CreateComObject(CLASS_MXNamespaceManager60) as IVBMXNamespaceManager; +end; + +class function CoMXNamespaceManager60.CreateRemote(const MachineName: string): IVBMXNamespaceManager; +begin + Result := CreateRemoteComObject(MachineName, CLASS_MXNamespaceManager60) as IVBMXNamespaceManager; +end; + +end. diff --git a/Lib/UtilsUnit.pas b/Lib/UtilsUnit.pas index cd3ea6a..cca4353 100644 --- a/Lib/UtilsUnit.pas +++ b/Lib/UtilsUnit.pas @@ -3,13 +3,28 @@ interface uses - IBServices, INIFiles, Forms, AbZipper, Windows, SysUtils, StrUtils, Controls, - osComboSearch, graphics, Classes, DBCtrls, wwdbdatetimepicker, Wwdbcomb, - Math, Wwdbgrid, RegExpr,StdCtrls, DB, DBClient, wwdbedit, Buttons, ShellAPI, acSysUtils, - osSQLConnection, osSQLQuery, WinSock; + {$IFDEF VER250}IBServices,{$ENDIF}{$IFDEF VER320}IBX.IBServices,{$ENDIF} + INIFiles, System.Zip, System.IOUtils, StrUtils, IdSSLOpenSSL, + Classes, Math, RegExpr, DB, DBClient, Winapi.PsApi, + osSQLConnection, osSQLQuery, WinSock, Soap.EncdDecd, Vcl.Imaging.PngImage, Vcl.Imaging.Jpeg, TlHelp32, + Vcl.Imaging.GifImg, WinSpool, Winapi.Windows, System.SysUtils, IdHashSHA, + Vcl.Graphics, Winapi.Messages, SHFolder, IdCoderMIME, Data.SqlExpr, System.Generics.Collections, + Data.DBXJSON, IdHTTP, acNetUtils, Data.DBXPlatform; type - varArrayOfcomps = array of TComponent; + TKeyValue = class(TDictionary); + + TFormOrigem = (TabEditConvenio, TabEditLaudo, TabEditExame); + + THSHash = class + class function CalculaHash(conteudo: string; pDig : Integer = 2): string; + class function GeraHashPCMed(linha: string): string; + end; + +const + sMODELOMSGLOG = #13+#13+'Campo %s alterado.'+#13+'De: %s'+#13+'Para: %s'; + szChar = SizeOf(Char); + AllSSLVersions = [sslvSSLv2, sslvSSLv23, sslvSSLv3, sslvTLSv1,sslvTLSv1_1,sslvTLSv1_2]; function isDigitOrControl(Key: char): boolean; function RemoveAcento(Str:String): String; @@ -17,25 +32,12 @@ procedure criarArquivoBackupIB(nomeArq: string); function getSombraValue(Str:String): String; function TiraSimbolos(Str: String): String; function LastDayOfMonth(dia: TDate = 0): TDate; -procedure setHabilitaComboSearch(cbo: TosComboSearch; enabled: boolean); -procedure setHabilitaComponente(comp: TComponent; enabled: boolean); -procedure habilitaComponentes(comps: varArrayOfcomps); -procedure desHabilitaComponentes(comps: array of TComponent); -procedure setHabilitaDBEdit(edt: TDBEdit; enabled: boolean); -procedure setHabilitaButton(btn: TButton; enabled: boolean); -procedure setHabilitaSpeedButton(btn: TSpeedButton; enabled: boolean); -procedure setHabilitawwComboBox(comboBox: TwwDBComboBox; enabled: boolean); -procedure setHabilitawwDateTimePicker(dateTimePicker: TwwDBDateTimePicker; enabled: boolean); function roundToCurr(val: double): double; -procedure setHabilitaDBCheckBox(edtd: TDBCheckBox; enabled: boolean); -procedure setHabilitaDBMemo(comp: TDBMemo; enabled: boolean); -procedure setHabilitawwDBGrid(grd: TwwDBGrid; enabled: boolean); -procedure ListFileDir(Path: string; FileList: TStrings); +procedure ListFileDir(Path: string; FileList: TStrings; pExtensao: string = 'xml'); function isNumeric(valor: string; acceptThousandSeparator: Boolean = False): boolean; function isIP(valor: string): boolean; function isConvert(Str: string): boolean; function extractPhoneNumber(Str: String; defaultDDD: string = '041'): string; -procedure setHabilitaEdit(edit: TEdit; enabled: boolean); function InvertIntOn(const ANumberL, ANumberH: Integer): Int64; function InvertIntOff(const ANumberL, ANumberH: Integer): Int64; function ConvertIntToBase(ANumber: Int64): string; @@ -50,25 +52,133 @@ function GetHora(tempo: string): Integer; function GetMinuto(tempo: string): Integer; function ConverteData(data: string): TDateTime; function ConverteDataHora(data: string): TDateTime; -procedure ImprimirImpressoraTermica(const comando, impressora: String); function NomeDaTecla(Key: Word): string; function RoundToCurrency(const AValue: Currency; const ADigit: TRoundToRange = -2): Currency; function ConverteTecladoNumerico(Key: Word): Word; function ConverteMinutos(minutos: Integer): string; -function GetDateTime(conn: TosSQLConnection): TDateTime; -function GetNewID(conn: TosSQLConnection): Integer; -function GetGenerator(conn: TosSQLConnection; generator: string): Integer; +function GetDateTime(conn: TSQLConnection): TDateTime; +function GetNewID(conn: TSQLConnection): Integer; +function GetGenerator(conn: TSQLConnection; generator: string): Integer; function ConverteStrToDate(data: string): TDateTime; function ConverteStrToDate2(data: string): TDateTime; +function ConverteStrToDate3(data: string): TDateTime; +function ConverteStrToDate4(data: string): TDateTime; function GetIPAddress: string; +function GetCurrentIpList:TSTringList; +function FieldHasChanged(aField : TField):Boolean; +procedure CheckChangedFields(aDataSet: TClientDataSet; aChangedFields: TStringList); +function ValueIsEmptyNull(aValue : Variant):Boolean; +function getDescricaoSexo(const vValor : Variant):String; +function getDescricaoSimNao(const vValor : Variant):String; +function getDescricaoTipoResultado(const vValor : Variant):String; +procedure ClonarDadosClientDataSet(cdsOrigem: TClientDataSet; cdsDestino: TClientDataSet; onlyData: Boolean = False); overload; +procedure ClonarDadosClientDataSet(cdsOrigem: TSQLDataSet; cdsDestino: TClientDataSet); overload; +function FormataStringList(texto, delimitador: string): string; +function ApenasNumeros(const valor : String) : String; +function ApenasLetrasNumeros(nStr:String): String; +function ZeraEsquerda(const Valor:String; const Tamanho:Integer): String; +function EspacoDireita(Valor: String; const Tamanho: Integer): String; +function EspacoEsquerda(Valor: String; const Tamanho: Integer): String; +function KeyToStr(Key:Word): String; +function Base64FromBinary(const FileName: String): string; +function Base64FromText(const text: String): string; +function TextFromBase64(const text: String): string; +function BinaryFromBase64(const base64: string): TBytesStream; +function Base64ToBitmap(base64Field: TBlobField): TBitmap; +function Base64FromStream(const input: TStream): string; +function TestConnection(const url: String; conn: TosSQLConnection = nil): boolean; +function SortCustomClientDataSet(ClientDataSet: TClientDataSet; + const FieldName: string): Boolean; +function getUriUrlStatus(const address: String; stream: TStream; AOwner: TComponent=nil): Boolean; +function GetMacAddress: string; +function GetWindowsDir: string; +function GetPcName: string; +function GetWindowsVersion: string; +function GetLanguage: string; +function GetScrollState: string; +function ScreenResolution: string; +function FreeDiskSpace(strDisk: string): string; +function TimeInWindows: string; +function GetPowerStatus: string; +function GetUser: string; +function getMemoryUsed: Integer; +function GetSystemDecimal: string; +function GetWindowPID(sFile: String): Cardinal; +function EnumProcess(hHwnd: HWND; lParam : integer; var FProcessa: Boolean; + var FHWND: HWND; var FPid: DWORD; var iListOfProcess: Integer): boolean; stdcall; +function EnumWindowsProc(Wnd: HWND; List: TStringList): BOOL; stdcall; +function KillTask(const ExeFileName: string): Integer; +function GetMD5FromString(const text: string): String; +function GetPageAsstring(const url: string): String; +function GetUrlWithoutParams(const url: String): String; +function GetDllName: string; +function GetTempDirectory: string; +function GetLastErrorMessage: string; +function FormatIP(const ip: string): String; +function TryForceDirectories(const aDir: string): String; overload; +function TryForceDirectories(const aDir: string; out aErrorMessage: string): boolean; overload; +function GetSHA1FromString(const text: string): string; +function GetSHA1FromFile(const path: string): string; +function GetFileSize(const filename: widestring): Int64; +function GetTelaAprovacao(conn: TosSQLConnection) : string; +function GetSpecialFolderPath(const folder : integer) : string; +function GetProgramDataAppDataFolder: string; +function MD5File(const FileName: string): string; +function HandleException(const aURL: string): string; +procedure ParseJSONObject(aDict: TKeyValue; aJsonValue: TJSONValue; + aJsonString: TJSONString; aJsonPairEnum: TJSONPairEnumerator; + aJsonArrayEnum: TJSONArrayEnumerator); + +function GetIdHttp: TIdHTTP; +function getJsonStringFromServer(const aURL: string; var aException: string): string; +function MappJsonToDict(const aJsonString: string) : TJsonArray; +function GetListaCamposTabela(conn: TSQLConnection; pTabela: String): TStringList; +procedure SaveToFile(const aFilename, aContent: string); +function LoadFromFile(const aFileName: string): string; +Function FileIsOpen(const FileName : TFileName) : Boolean; +procedure UpdateProxy(dir: string); +procedure RemoveDiretorio(Dir: String); +function ExtractBetween(const Value, A, B: string): string; +function LocalizaElementoArray(Element: array of Integer; Valor: Integer): Boolean; +function GetJsonValue(jsonObject: TJsonObject; campo: string): string; +function Is64BitOS: Boolean; +function IsWindows64: Boolean; implementation -uses DateUtils, Variants; +uses DateUtils, Variants, StatusUnit, IdMultipartFormData, IdExceptionCore, IdStack, + IdHash, IdHashMessageDigest, IdGlobal, IdURI, ParametroSistemaDataUn; + const CSIDL_COMMON_APPDATA = $0023; +function ApenasNumeros(const valor : String) : String; +var + i : byte; +begin + Result := EmptyStr; + for i := 1 to length(valor) do + if CharInSet(valor[i], ['0'..'9']) then + Result := result + valor[i]; +end; + +function ApenasLetrasNumeros(nStr:String): String; +Var + I: Integer; +begin + Result := ''; + for I := 1 to Length(nStr) do + if CharInSet(nStr[I], ['0'..'9','a'..'z','A'..'Z',Chr(8)]) then + Result := Result + nStr[I]; +end; + +function FormataStringList(texto, delimitador: string): string; +begin + Result := '"' + StringReplace(texto, + delimitador, '"' + delimitador + '"', [rfReplaceAll]) + '"'; +end; + // 20001020 function ConverteData(data: string): TDateTime; begin @@ -82,11 +192,11 @@ function ConverteDataHora(data: string): TDateTime; Copy(data,9,2)+':'+Copy(data,11,2)+':'+Copy(data,13,2)); end; -procedure ListFileDir(Path: string; FileList: TStrings); +procedure ListFileDir(Path: string; FileList: TStrings; pExtensao: string = 'xml'); var SR: TSearchRec; begin - if FindFirst(Path + '\*.xml', faAnyFile, SR) = 0 then + if FindFirst(Path + '\*.'+pExtensao, faAnyFile, SR) = 0 then begin repeat if (SR.Attr <> faDirectory) then @@ -98,17 +208,6 @@ procedure ListFileDir(Path: string; FileList: TStrings); end; end; -procedure setHabilitaButton(btn: TButton; enabled: boolean); -begin - btn.Enabled := enabled; -end; - -procedure setHabilitaSpeedButton(btn: TSpeedButton; enabled: boolean); -begin - btn.Enabled := enabled; -end; - - function isDigitOrControl(Key: char): boolean; var um, dois, tres, quatro, cinco: boolean; @@ -138,34 +237,34 @@ function RemoveAcento(Str:String): String; procedure criarArquivoBackupIB(nomeArq: string); var IBBackup: TIBBackupService; - zipper: TABZipper; + zipper: TZipFile; begin IBBackup := TIBBackupService.Create(nil); - zipper := TAbZipper.Create(nil); + zipper := TZipFile.Create; try DeleteFile('tmp.gbk'); IBBackup.Active := false; - IBBackup.DatabaseName := ExtractFilePath(Application.ExeName) + '..\DB\' + - copy(ExtractFileName(Application.ExeName),1,pos('.',ExtractFileName(Application.ExeName))-1) + '.gdb'; + IBBackup.DatabaseName := ExtractFilePath(ParamStr(0)) + '..\DB\' + + copy(ExtractFileName(ParamStr(0)),1,pos('.',ExtractFileName(ParamStr(0)))-1) + '.gdb'; IBBackup.LoginPrompt := false; IBBackup.Params.Clear; IBBackup.Params.Add('user_name=sysdba'); IBBackup.Params.Add('password=masterkey'); - IBBackup.BackupFile.Add(ExtractFilePath(Application.ExeName) + 'tmp.gbk'); + IBBackup.BackupFile.Add(ExtractFilePath(ParamStr(0)) + 'tmp.gbk'); IBBackup.Active := true; IBBackup.ServiceStart; while IBBackup.IsServiceRunning do Sleep(1); IBBackup.Active := false; - DeleteFile(PCHAR(ExtractFilePath(Application.ExeName) + 'tmp.zip')); - Zipper.FileName := ExtractFilePath(Application.ExeName) + 'tmp.zip'; - Zipper.AddFiles(ExtractFilePath(Application.ExeName) + 'tmp.gbk',0); - Zipper.CloseArchive; - deleteFile(PCHAR(ExtractFilePath(Application.ExeName) + '..\backups\ultimoBackup.bkp')); - CopyFile(PWideChar(ExtractFilePath(Application.ExeName) + 'tmp.zip'), - PWideChar(ExtractFilePath(Application.ExeName) + '..\backups\ultimoBackup.bkp'),false); - RenameFile(ExtractFilePath(Application.ExeName) + 'tmp.zip', nomeArq); - DeleteFile(PCHAR(ExtractFilePath(Application.ExeName) + 'tmp.gbk')); - DeleteFile(PCHAR(ExtractFilePath(Application.ExeName) + 'tmp.zip')) + DeleteFile(PCHAR(ExtractFilePath(ParamStr(0)) + 'tmp.zip')); + Zipper.Open(ExtractFilePath(ParamStr(0)) + 'tmp.zip', zmWrite); + Zipper.Add(ExtractFilePath(ParamStr(0)) + 'tmp.gbk'); + Zipper.Close; + deleteFile(PCHAR(ExtractFilePath(ParamStr(0)) + '..\backups\ultimoBackup.bkp')); + CopyFile(PWideChar(ExtractFilePath(ParamStr(0)) + 'tmp.zip'), + PWideChar(ExtractFilePath(ParamStr(0)) + '..\backups\ultimoBackup.bkp'),false); + RenameFile(ExtractFilePath(ParamStr(0)) + 'tmp.zip', nomeArq); + DeleteFile(PCHAR(ExtractFilePath(ParamStr(0)) + 'tmp.gbk')); + DeleteFile(PCHAR(ExtractFilePath(ParamStr(0)) + 'tmp.zip')) finally FreeAndNil(zipper); FreeAndNil(IBBackup); @@ -231,142 +330,6 @@ function LastDayOfMonth(dia: TDate = 0): TDate; result := encodedate(y, m, 1) - 1; end; -procedure setHabilitaComboSearch(cbo: TosComboSearch; enabled: boolean); -begin - if enabled then - begin - cbo.ReadOnly := false; - cbo.color := clWhite; - cbo.showButton := true; - end - else - begin - cbo.ReadOnly := true; - cbo.color := clBtnFace; - cbo.showButton := false; - end; - cbo.invalidate; -end; - -procedure setHabilitaDBEdit(edt: TDBEdit; enabled: boolean); -begin - if enabled then - begin - edt.ReadOnly := false; - edt.color := clWhite; - end - else - begin - edt.ReadOnly := true; - edt.color := clBtnFace; - end; -end; - -procedure setHabilitawwComboBox(comboBox: TwwDBComboBox; enabled: boolean); -begin - if enabled then - begin - comboBox.ReadOnly := false; - comboBox.Color := clWhite; - end - else - begin - comboBox.ReadOnly := true; - comboBox.Color := clBtnFace; - end; -end; - -procedure setHabilitawwDateTimePicker(dateTimePicker: TwwDBDateTimePicker; enabled: boolean); -begin - if enabled then - begin - dateTimePicker.ReadOnly := false; - dateTimePicker.Color := clWhite; - end - else - begin - dateTimePicker.ReadOnly := true; - dateTimePicker.Color := clBtnFace; - end; -end; - -procedure setHabilitaDBCheckBox(edtd: TDBCheckBox; enabled: boolean); -begin - if enabled then - begin - edtd.ReadOnly := false; - end - else - begin - edtd.ReadOnly := true; - end; -end; - -procedure setHabilitawwDBGrid(grd: TwwDBGrid; enabled: boolean); -begin - if enabled then - begin - grd.ReadOnly := false; - end - else - begin - grd.ReadOnly := true; - end; -end; - - -procedure setHabilitaDBMemo(comp: TDBMemo; enabled: boolean); -begin - if enabled then - begin - comp.enabled := true; - comp.Color := clWhite; - end - else - begin - comp.enabled := false; - comp.Color := clBtnFace; - end; -end; - -procedure setHabilitaComponente(comp: TComponent; enabled: boolean); -begin - if comp is TosComboSearch then - setHabilitaComboSearch((comp as TosComboSearch), enabled); - if comp is TDBEdit then - setHabilitaDBEdit((comp as TDBEdit), enabled); - if comp is TwwDBComboBox then - setHabilitawwComboBox((comp as TwwDBComboBox), enabled); - if comp is TwwDBDateTimePicker then - setHabilitawwDateTimePicker((comp as TwwDBDateTimePicker), enabled); - if comp is TDBCheckBox then - setHabilitadbCheckBox((comp as TDBCheckBox), enabled); - if comp is TDBMemo then - setHabilitaDBMemo((comp as TDBMemo), enabled); - if comp is TwwDBGrid then - setHabilitawwDBGrid((comp as twwDBGrid), enabled); - if comp is TButton then - setHabilitaButton((comp as TButton), enabled); - if comp is TSpeedButton then - setHabilitaSpeedButton((comp as TSpeedButton), enabled); -end; - -procedure habilitaComponentes(comps: varArrayOfcomps); -var - i: integer; -begin - for i := low(comps) to high(comps) do - setHabilitaComponente(comps[i], true); -end; - -procedure desHabilitaComponentes(comps: array of TComponent); -var - i: integer; -begin - for i := low(comps) to high(comps) do - setHabilitaComponente(comps[i], false); -end; - function roundToCurr(val: double): double; begin result := roundTo(val, -2); @@ -374,8 +337,6 @@ function roundToCurr(val: double): double; function isNumeric(valor: string; acceptThousandSeparator: Boolean = False): boolean; -var - decimal: char; begin valor := Trim(valor); if acceptThousandSeparator then @@ -457,20 +418,6 @@ function extractPhoneNumber(Str: String; defaultDDD: string = '041'): string; result := '00000000000'; end; -procedure setHabilitaEdit(edit: TEdit; enabled: boolean); -begin - if enabled then - begin - edit.ReadOnly := false; - edit.Color := clWhite; - end - else - begin - edit.ReadOnly := true; - edit.Color := clBtnFace; - end; -end; - function InvertIntOn(const ANumberL, ANumberH: Integer): Int64; asm XOR EAX,$FFFFFFFF @@ -589,7 +536,7 @@ function ValidaIntervalo(inicio: string; fim: string; permiteIgual: Boolean): Bo tamInicio, tamFim: Integer; begin tamInicio := Length(inicio); - tamFim := Length(fim); + tamFim := Length(fim); horaInicio := StrToIntDef(Trim(Copy(inicio,0,tamInicio-3)),0); minutoInicio := StrToIntDef(Trim(Copy(inicio,tamInicio-1,2)),0); horaFim := StrToIntDef(Trim(Copy(fim,0,tamFim-3)),0); @@ -648,40 +595,13 @@ function GetMinuto(tempo: string): Integer; Result := StrToIntDef(Trim(Copy(tempo,tam-1,2)),0); end; -procedure ImprimirImpressoraTermica(const comando, impressora: String); -var - FBat, FComando: TextFile; - diretorio: string; -begin - diretorio:= GetSpecialFolderLocation(Application.Handle, CSIDL_COMMON_APPDATA) + '\'; - - DeleteFile(diretorio + 'COMANDO.TXT'); - DeleteFile(diretorio + 'PRINTLBL.BAT'); - - AssignFile(FComando, diretorio + 'COMANDO.TXT'); - try - Rewrite(FComando); - Writeln(FComando, comando); - finally - CloseFile(FComando); - end; - - AssignFile(FBat, diretorio + 'PRINTLBL.BAT'); - try - Rewrite(FBat); - Writeln(FBat, 'TYPE "' + diretorio + 'COMANDO.TXT" > '+impressora); - finally - CloseFile(FBat); - end; - - ShellExecute(0, 'Open', PChar(diretorio + 'PRINTLBL.BAT'), nil, nil, Ord(SW_HIDE)); -end; function NomeDaTecla(Key: Word): string; var keyboardState: TKeyboardState; asciiResult: Integer; begin + Result := ''; case Key of VK_BACK: Result := '[BACKSPACE]'; //backspace VK_RETURN: Result := '[ENTER]'; //enter @@ -731,11 +651,12 @@ function NomeDaTecla(Key: Word): string; VK_F10: Result := '[F10]'; //F10 key VK_F11: Result := '[F11]'; //F11 key VK_F12: Result := '[F12]'; //F12 key - 219: Result := ''; //´ acento - 222: Result := ''; //~ acento + 219: Result := '´'; //´ acento + 222: Result := '~'; //~ acento else GetKeyboardState(keyboardState); - SetLength(Result, 2) ; + Result := EspacoDireita(Result,10); +// SetLength(Result, 10) ; //Se usar o SetLength em alguns casos o valor é inicializado com caracter estranho asciiResult := ToAscii(key, MapVirtualKey(key, 0), keyboardState, @Result[1], 0) ; case asciiResult of 0: Result := ''; @@ -753,13 +674,15 @@ function RoundToCurrency(const AValue: Currency; const ADigit: TRoundToRange): C var LFactor: Extended; rmOrig: TFPURoundingMode; + Valor: real; begin rmOrig := GetRoundMode(); if rmOrig <> rmNearest then SetRoundMode(rmNearest); + Valor := AValue; //Faz o cast pra float LFactor := IntPower(10, ADigit); - Result := Round(AValue / LFactor) * LFactor; + Result := Round(Valor / LFactor) * LFactor; if rmOrig <> rmNearest then SetRoundMode(rmOrig); @@ -767,6 +690,7 @@ function RoundToCurrency(const AValue: Currency; const ADigit: TRoundToRange): C function ConverteTecladoNumerico(Key: Word): Word; begin + Result := 190; case Key of VK_NUMPAD0: Result := 48; //96 0 key (numeric keypad) VK_NUMPAD1: Result := 49; //97 1 key (numeric keypad) @@ -816,7 +740,7 @@ function ConverteMinutos(minutos: Integer): String; Result := Result+h+':'+m; end; -function GetDateTime(conn: TosSQLConnection): TDateTime; +function GetDateTime(conn: TSQLConnection): TDateTime; var qry: TosSQLQuery; begin @@ -832,7 +756,7 @@ function GetDateTime(conn: TosSQLConnection): TDateTime; end; end; -function GetNewID(conn: TosSQLConnection): Integer; +function GetNewID(conn: TSQLConnection): Integer; var qry: TosSQLQuery; begin @@ -848,7 +772,7 @@ function GetNewID(conn: TosSQLConnection): Integer; end; end; -function GetGenerator(conn: TosSQLConnection; generator: string): Integer; +function GetGenerator(conn: TSQLConnection; generator: string): Integer; var qry: TosSQLQuery; begin @@ -877,25 +801,1619 @@ function ConverteStrToDate2(data: string): TDateTime; Copy(FormatDateTime('yyyy',Today),1,2)+Copy(data,7,2)); end; +//010120131015 => 01/01/2013 10:15 +function ConverteStrToDate3(data: string): TDateTime; +begin + Result := StrToDateTime(Copy(data,1,2)+'/'+Copy(data,3,2)+'/20'+Copy(data,5,2)+' '+ + Copy(data,7,2)+':'+Copy(data,9,2)); +end; + +//19800515 +function ConverteStrToDate4(data: string): TDateTime; +begin + Result := StrToDate(Copy(data,7,2)+'/'+Copy(data,5,2)+'/'+Copy(data,1,4)); +end; + function GetIPAddress: string; +type pu_long = ^u_long; +var + varTWSAData : TWSAData; + varPHostEnt : PHostEnt; + varTInAddr : TInAddr; + namebuf : Array[0..255] of ansichar; +begin + try + try + If WSAStartup($101,varTWSAData) <> 0 Then + Result := '' + Else Begin + gethostname(namebuf,sizeof(namebuf)); + varPHostEnt := gethostbyname(namebuf); + varTInAddr.S_addr := u_long(pu_long(varPHostEnt^.h_addr_list^)^); + Result := string(inet_ntoa(varTInAddr)); + End; + except + Result := ''; + end; + finally + WSACleanup; + end; +end; + +Function GetCurrentIpList:TSTringList; +type + TaPInAddr = array [0..10] of PInAddr; + PaPInAddr = ^TaPInAddr; var - Buffer: array[0..255] of AnsiChar; - RemoteHost: PHostEnt; - tempAddress: Integer; - BufferR: array[0..3] of Byte absolute tempAddress; + phe : PHostEnt; + pptr : PaPInAddr; + Buffer : array [0..63] of Ansichar; + I : Integer; + GInitData : TWSADATA; begin - Winsock.GetHostName(@Buffer, 255); - RemoteHost := Winsock.GetHostByName(Buffer); - if RemoteHost = nil then + Result:=TStringList.Create; + WSAStartup($101, GInitData); + GetHostName(Buffer, SizeOf(Buffer)); + phe :=GetHostByName(buffer); + if phe = nil then + Exit; + pptr := PaPInAddr(Phe^.h_addr_list); + I := 0; + while pptr^[I] <> nil do begin - tempAddress := winsock.htonl($07000001); { 127.0.0.1 } - end + result.add(String(inet_ntoa(pptr^[I]^))); + Inc(I); + end; + WSACleanup; +end; + +function FormatIP(const ip: string): String; +var + _ip: TStringList; +begin + Result := ip; + _ip := TStringList.Create; + _ip.Delimiter := '.'; + _ip.DelimitedText := ip; + try + Result := Format('%.3d.%.3d.%.3d.%.3d', [StrToIntDef(_ip[0], 1), StrToIntDef(_ip[1], 1), StrToIntDef(_ip[2], 1), StrToIntDef(_ip[3], 1)]); + finally + FreeAndNil(_ip); + end; +end; + +class function THSHash.CalculaHash(conteudo: string; pDig : Integer = 2): string; +var + sum, i : Integer; + HFrame : string; +begin + sum := 0; + for i := 1 to Length(conteudo) do + begin + sum := sum + Ord(conteudo[i]); + end; + HFrame := IntToHex(sum mod 256,pDig); + + if (Length(HFrame) < 2) then + HFrame := '0' + HFrame; + + result := UpperCase(HFrame); +end; + + +class function THSHash.GeraHashPCMed(linha: string): string; +var + i: Integer; + valor: integer; + hexa: string; +begin + valor := 0; + for i := 1 to Length(linha) do + begin + valor := valor + ord(copy(linha,i,1)[1]); + end; + valor := valor mod 256; + hexa := IntToHex(valor,0); + Result := hexa; +end; + +function FieldHasChanged(aField : TField):Boolean; +begin + case AField.DataType of + ftString : Result := Trim(VarToStrDef(aField.OldValue,'')) <> Trim(VarToStrDef(aField.NewValue,'')); + ftMemo : Result := Trim(VarToStrDef(aField.OldValue,'')) <> Trim(VarToStrDef(aField.NewValue,'')); else + if ValueIsEmptyNull(aField.OldValue) and ValueIsEmptyNull(aField.NewValue) then + result := False + else + Result := aField.OldValue <> aField.NewValue; + end; +end; + +procedure CheckChangedFields(aDataSet: TClientDataSet; aChangedFields: TStringList); +var + _i: integer; +begin + aChangedFields.Clear; + for _i := 0 to aDataSet.FieldCount - 1 do begin - tempAddress := longint(pointer(RemoteHost^.h_addr_list^)^); - tempAddress := Winsock.ntohl(tempAddress); + if (aDataSet.Fields[_i].FieldKind = fkData) and + (aDataSet.Fields[_i].DataType in [ftString, ftSmallint, ftInteger, ftWord, + ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime, + ftWideString, ftLargeint, ftLongWord, ftShortint, + ftByte, ftExtended]) and + (not aDataSet.Fields[_i].IsNull) then + begin + if UtilsUnit.FieldHasChanged(aDataSet.Fields[_i]) then + aChangedFields.Add(aDataSet.Fields[_i].FieldName); + end; end; - Result := Format('%d.%d.%d.%d', [BufferR[3], BufferR[2], BufferR[1], BufferR[0]]); end; -end. + +function ValueIsEmptyNull(aValue : Variant):Boolean; +begin + Result := VarIsEmpty(aValue) or VarIsNull(aValue); + + if (not Result) and VarIsStr(aValue) then + Result := Trim(varToStr(aValue)) = EmptyStr +end; + +function getDescricaoSexo(const vValor : Variant):String; +var + cValor : Char; +begin + cValor := Char(AnsiString(VarToStrDef(vValor, ' '))[1]); + case cValor of + spMasculino : Result := 'Masculino'; + spFeminino : Result := 'Feminino'; + spAmbos : Result := 'Ambos'; + else + result := ''; + end; +end; + +function getDescricaoSimNao(const vValor : Variant):String; +var + cValor : Char; +begin + try + cValor := Char(AnsiString(VarToStrDef(vValor, ' '))[1]); + case cValor of + 'S' : Result := 'Sim'; + 'N' : Result := 'Não'; + else + result := ''; + end; + except + result := 'Indefinido' + end; +end; + +function getDescricaoTipoResultado(const vValor : Variant):String; +var + cValor : Char; +begin + cValor := Char(AnsiString(VarToStrDef(vValor, ' '))[1]); + case cValor of + satrGerme : Result := 'Germe'; + satrNumerico : Result := 'Número'; + satrParasita : Result := 'Parasita'; + satrTexto : Result := 'Texto'; + satrTitulo : Result := 'Título'; + else + result := ''; + end; +end; + +procedure ClonarDadosClientDataSet(cdsOrigem: TClientDataSet; cdsDestino: TClientDataSet; onlyData: Boolean = False); +var + field : TField; + i: Integer; +begin + if cdsOrigem.Fields.Count <> cdsDestino.Fields.Count then + begin + for i := 0 to cdsOrigem.FieldCount-1 do + begin + if (onlyData) and ((cdsOrigem.Fields[i]) is TDataSetField) then + continue; + + if (cdsOrigem.Fields[i]) is TMemoField then + field := TMemoField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TIntegerField then + field := TIntegerField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TLargeIntField then + field := TLargeIntField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TDateTimeField then + field := TDateTimeField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TDateField then + field := TDateField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TSQLTimeStampField then + field := TSQLTimeStampField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TFloatField then + field := TFloatField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TObjectField then + field := TObjectField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TGraphicField then + field := TGraphicField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TWideMemoField then + field := TWideMemoField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TADTField then + field := TADTField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TArrayField then + field := TArrayField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TDataSetField then + field := TDataSetField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TReferenceField then + field := TReferenceField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TVariantField then + field := TVariantField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TAggregateField then + field := TAggregateField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TBlobField then + field := TBlobField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TFMTBCDField then + field := TFMTBCDField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TBCDField then + field := TBCDField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TTimeField then + field := TTimeField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TBooleanField then + field := TBooleanField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TCurrencyField then + field := TCurrencyField.Create(cdsDestino) + else + field := TStringField.Create(cdsDestino); + + Field.FieldKind := fkData; + Field.FieldName := cdsOrigem.Fields[i].FieldName; + Field.DisplayLabel := cdsOrigem.Fields[i].DisplayLabel; + Field.Visible := cdsOrigem.Fields[i].Visible; + if (cdsOrigem.Fields[i] is TStringField) then + Field.Size := cdsOrigem.Fields[i].Size; + Field.DataSet := cdsDestino; + + end; + cdsDestino.Close; + cdsDestino.CreateDataSet; + end; + + + if cdsOrigem.State <> dsInactive then + begin + cdsOrigem.First; + while not cdsOrigem.Eof do + begin + cdsDestino.Append; + for i := 0 to cdsOrigem.FieldCount-1 do + begin + if (not cdsOrigem.Fields[i].IsNull) and (cdsDestino.FindField(cdsOrigem.Fields[i].FieldName) <> nil) then + cdsDestino.FieldByName(cdsOrigem.Fields[i].FieldName).AsString := cdsOrigem.FieldByName(cdsOrigem.Fields[i].FieldName).AsString; + end; + cdsDestino.Post; + cdsOrigem.Next; + end; + end; +end; + +procedure ClonarDadosClientDataSet(cdsOrigem: TSQLDataSet; cdsDestino: TClientDataSet); +var + field : TField; + i: Integer; +begin + if cdsOrigem.Fields.Count <> cdsDestino.Fields.Count then + begin + for i := 0 to cdsOrigem.FieldCount-1 do + begin + if (cdsOrigem.Fields[i]) is TMemoField then + field := TMemoField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TIntegerField then + field := TIntegerField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TLargeIntField then + field := TLargeIntField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TDateTimeField then + field := TDateTimeField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TDateField then + field := TDateField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TSQLTimeStampField then + field := TSQLTimeStampField.Create(cdsDestino) + else if (cdsOrigem.Fields[i]) is TFloatField then + field := TFloatField.Create(cdsDestino) + else + field := TStringField.Create(cdsDestino); + + Field.FieldKind := fkData; + Field.FieldName := cdsOrigem.Fields[i].FieldName; + Field.DisplayLabel := cdsOrigem.Fields[i].DisplayLabel; + Field.Visible := cdsOrigem.Fields[i].Visible; + if (cdsOrigem.Fields[i] is TStringField) then + Field.Size := cdsOrigem.Fields[i].Size; + Field.DataSet := cdsDestino; + + end; + cdsDestino.Close; + cdsDestino.CreateDataSet; + end; + + cdsOrigem.First; + while not cdsOrigem.Eof do + begin + cdsDestino.Append; + for i := 0 to cdsOrigem.FieldCount-1 do + begin + if not cdsOrigem.FieldByName(cdsDestino.Fields[i].FieldName).IsNull then + cdsDestino.FieldByName(cdsDestino.Fields[i].FieldName).AsString := cdsOrigem.FieldByName(cdsDestino.Fields[i].FieldName).AsString; + end; + cdsDestino.Post; + cdsOrigem.Next; + end; +end; + +function ZeraEsquerda(const Valor:String; const Tamanho:Integer): String; +begin + Result := Trim(Valor); + Result := DupeString('0',Tamanho - Length(Result)) + Result; +end; + +function EspacoDireita(Valor: String; const Tamanho: Integer): String; +var + I : Integer ; +begin + Result := '' ; + Valor := Trim(Valor); + for I:=Length(Valor)+1 to Tamanho do + Result := Result + ' '; + Result := Valor + Result ; +end; + +function EspacoEsquerda(Valor: String; const Tamanho: Integer): String; +var + I : Integer ; +begin + Result := '' ; + Valor := Trim(Valor); + for I:=Length(Valor)+1 to Tamanho do + Result := ' ' + Result; + Result := Result + Valor ; +end; + +function KeyToStr(Key:Word): String; +var + keyboardState: TKeyboardState; + asciiResult: Integer; +begin + GetKeyboardState(keyboardState); + SetLength(Result, 2); + asciiResult := ToAscii(key, MapVirtualKey(key, 0), keyboardState, @Result[1], 0); + case asciiResult of + 1: SetLength(Result, 1) ; + 2:; + else Result := ''; + end; +end; + + +function Base64FromBinary(const FileName: String): string; +var + Input: TFileStream; + InputMemoryStream: TMemoryStream; + Output: UTF8String; + Encoder: TIdEncoderMIME; +begin + Result := EmptyStr; + Output := UTF8Encode(EmptyStr); + + Input := TFileStream.Create(FileName, fmOpenRead); + InputMemoryStream := TMemoryStream.Create(); + Encoder := TIdEncoderMIME.Create(); + try + //Soap.EncdDecd.EncodeStream(Input, Output); + InputMemoryStream.LoadFromStream(Input); + Output := UTF8Encode(Encoder.EncodeStream(InputMemoryStream, InputMemoryStream.Size)); + Result := UTF8ToString(Output); + finally + FreeAndNil(Input); + FreeAndNil(InputMemoryStream); + FreeAndNil(Encoder); + end; +end; + +function Base64FromText(const text: String): string; +begin + Result := Soap.EncdDecd.EncodeString(text); +end; + +function TextFromBase64(const text: String): string; +begin + Result := Soap.EncdDecd.DecodeString(text); +end; + +function Base64FromStream(const input: TStream): string; +var + Output: TStringStream; +begin + input.Position := 0; + Output := TStringStream.Create('', TEncoding.ASCII); + try + Soap.EncdDecd.EncodeStream(input, Output); + Result := Output.DataString; + finally + Output.Free; + end; +end; + +function BinaryFromBase64(const base64: string): TBytesStream; +var + Input: TStringStream; + Output: TBytesStream; +begin + Input := TStringStream.Create(base64, TEncoding.ASCII); + try + Output := TBytesStream.Create; + try + Soap.EncdDecd.DecodeStream(Input, Output); + Output.Position := 0; + Result := TBytesStream.Create; + try + Result.LoadFromStream(Output); + except + Result.Free; + raise; + end; + finally + Output.Free; + end; + finally + Input.Free; + end; +end; + +procedure DetectImage(BS:TBytesStream; BM: TBitmap); +var + FirstBytes: AnsiString; + Graphic: TGraphic; +begin + Graphic := nil; + SetLength(FirstBytes, 8); + BS.Read(FirstBytes[1], 8); + if Copy(FirstBytes, 1, 2) = 'BM' then + begin + Graphic := TBitmap.Create; + end else + if FirstBytes = #137'PNG'#13#10#26#10 then + begin + Graphic := TPngImage.Create; + end else + if Copy(FirstBytes, 1, 3) = 'GIF' then + begin + Graphic := TGIFImage.Create; + end else + if Copy(FirstBytes, 1, 2) = #$FF#$D8 then + begin + Graphic := TJPEGImage.Create; + end; + if Assigned(Graphic) then + begin + try + BS.Seek(0, soFromBeginning); + Graphic.LoadFromStream(BS); + BM.Assign(Graphic); + except + end; + Graphic.Free; + end; +end; + +function Base64ToBitmap(base64Field: TBlobField): TBitmap; +var + ms : TMemoryStream; + base64String : AnsiString; + myFile: TBytesStream; +begin + ms := TMemoryStream.Create; + try + Result := TBitmap.Create; + base64Field.SaveToStream(ms); + ms.Position := 0; + + SetString(base64String, PAnsiChar(ms.Memory), ms.Size); + myFile := BinaryFromBase64(string(base64String)); + try + DetectImage(myFile, Result); + finally + myFile.Free; + end; + finally + ms.Free; + end; +end; + +function TestConnection(const url: String; conn: TosSQLConnection = nil): boolean; +var + HTTPClient: TidHTTP; + Stream: TStringStream; + LHandler: TIdSSLIOHandlerSocketOpenSSL; + ParametroSistema: TParametroSistemaData; + qryProxy: TosSQLQuery; +begin + Stream := TStringStream.Create('', TEncoding.UTF8); + + HTTPClient := TidHTTP.Create(nil); + LHandler := TIdSSLIOHandlerSocketOpenSSL.Create(HTTPClient); + LHandler.SSLOptions.Method := sslvTLSv1_2; + LHandler.SSLOptions.Mode := sslmUnassigned; + LHandler.SSLOptions.SSLVersions := AllSSLVersions; + HTTPClient.IOHandler := LHandler; + HTTPClient.HandleRedirects := True; + HTTPClient.AllowCookies := True; + HTTPClient.Request.ContentType := 'utf-8'; + HTTPClient.ReadTimeout := 30000; + HTTPClient.ConnectTimeout := 30000; + + if conn = nil then + begin + ParametroSistema := TParametroSistemaData.Create(nil); + ParametroSistema.MasterDataSet.Open; + if ParametroSistema.MasterDataSetENDERECOPROXY.AsString <> '' then + HTTPClient.ProxyParams.ProxyServer := ParametroSistema.MasterDataSetENDERECOPROXY.AsString; + if ParametroSistema.MasterDataSetPORTAPROXY.AsString <> '' then + HTTPClient.ProxyParams.ProxyPort := ParametroSistema.MasterDataSetPORTAPROXY.AsInteger; + if ParametroSistema.MasterDataSetUSUARIOPROXY.AsString <> '' then + HTTPClient.ProxyParams.ProxyUsername := ParametroSistema.MasterDataSetUSUARIOPROXY.AsString; + if ParametroSistema.MasterDataSetSENHAPROXY.AsString <> '' then + HTTPClient.ProxyParams.ProxyPassword := ParametroSistema.MasterDataSetSENHAPROXY.AsString; + end + else + begin + try + qryProxy := TosSQLQuery.Create(nil); + qryProxy.SQLConnection := conn; + qryProxy.CommandText := 'select ENDERECOPROXY, PORTAPROXY, USUARIOPROXY, SENHAPROXY from PARAMETROSISTEMA'; + qryProxy.Open; + + if not ValueIsEmptyNull(qryProxy.FieldByName('ENDERECOPROXY').Value) then + HTTPClient.ProxyParams.ProxyServer := ParametroSistema.MasterDataSetENDERECOPROXY.AsString; + if not ValueIsEmptyNull(qryProxy.FieldByName('PORTAPROXY').Value) then + HTTPClient.ProxyParams.ProxyPort := ParametroSistema.MasterDataSetPORTAPROXY.AsInteger; + if not ValueIsEmptyNull(qryProxy.FieldByName('USUARIOPROXY').Value) then + HTTPClient.ProxyParams.ProxyUsername := ParametroSistema.MasterDataSetUSUARIOPROXY.AsString; + if not ValueIsEmptyNull(qryProxy.FieldByName('SENHAPROXY').Value) then + HTTPClient.ProxyParams.ProxyPassword := ParametroSistema.MasterDataSetSENHAPROXY.AsString; + finally + FreeAndNil(qryProxy); + end; + end; + + HTTPClient.ProxyParams.BasicAuthentication := HTTPClient.ProxyParams.ProxyUsername <> ''; + try + try + HTTPClient.Get(url, Stream); + Stream.Position := 0; + Result := HTTPClient.ResponseCode.ToBoolean; + except + on E: Exception do + Result := False; + end; + finally + Stream.Free; + LHandler.Free; + HTTPClient.Free; + FreeAndNil(ParametroSistema); + end; +end; + +function SortCustomClientDataSet(ClientDataSet: TClientDataSet; + const FieldName: string): Boolean; +var + i: Integer; + NewIndexName: string; + IndexOptions: TIndexOptions; + Field: TField; +begin + Result := False; + Field := ClientDataSet.Fields.FindField(FieldName); + + //se for lookup ou calculado + if Field.FieldKind in [fkLookup, fkCalculated] then + exit; + + //Se fieldname inválido, exit. + if Field = nil then Exit; + + //se field type inválido, exit. + if (Field is TObjectField) or (Field is TBlobField) or + (Field is TAggregateField) or (Field is TVariantField) + or (Field is TBinaryField) then Exit; + + //Obter IndexDefs e IndexName usando RTTI + //Garantir que IndexDefs esteja atualizado. + ClientDataSet.IndexDefs.Update; + + //se um índice ascendente já estiver em uso, + //mudar para um índice descendente. + if ClientDataSet.IndexName = FieldName + '__IdxA' + then + begin + NewIndexName := FieldName + '__IdxD'; + IndexOptions := [ixDescending]; + end + else + begin + NewIndexName := FieldName + '__IdxA'; + IndexOptions := []; + end; + + //Procurar um índice existente + for i := 0 to Pred(ClientDataSet.IndexDefs.Count) do + begin + if ClientDataSet.IndexDefs[i].Name = NewIndexName then + begin + Result := True; + Break + end; //if + end; // for + + //Se não enconttrado índice existente, criar um + if not Result then + begin + ClientDataSet.AddIndex(NewIndexName, + FieldName, IndexOptions); + Result := True; + end; // if not + + //Configurar o índice. + ClientDataSet.IndexName := NewIndexName; +end; + +function getUriUrlStatus(const address: String; stream: TStream; AOwner: TComponent=nil) : Boolean; +var + _idHTTP: TIdHTTP; + LHandler: TIdSSLIOHandlerSocketOpenSSL; + _resCode: Integer; + + function Fallback: Boolean; + var + _FHttp: TIdHTTP; + _FLHandler: TIdSSLIOHandlerSocketOpenSSL; + begin + _FHttp := TIdHTTP.Create(AOwner); + _FLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(_FHttp); + try + _FHttp.AllowCookies := True; + _FHttp.IOHandler := _FLHandler; + _FHttp.HandleRedirects := True; + Result := TestConnection(address); + try + if stream is TIdMultiPartFormDataStream then + _FHttp.Post(address, TIdMultiPartFormDataStream(stream)) + else + _FHttp.Post(address, TStringStream(stream)); + _resCode := _FHttp.Response.ResponseCode; + Result := (_resCode > 99) and (_resCode < 400); + except + on E : Exception do + begin + end + end; + finally + FreeAndNil(_FHttp); + FreeAndNil(_FLHandler); + end; + end; +begin + _resCode := -1; + _idHTTP := TIdHTTP.Create(AOwner); + LHandler := TIdSSLIOHandlerSocketOpenSSL.Create(_idHTTP); + try + try + _idHTTP.ReadTimeout := 30000; + _idHTTP.ConnectTimeout := 30000; + _idHTTP.AllowCookies := True; + _idHTTP.IOHandler := LHandler; + _idHTTP.HandleRedirects := True; + + _IdHTTP.Head(address); + _resCode := _IdHTTP.Response.ResponseCode; + + Result := (_resCode > 99) and (_resCode < 400); + if not Result then + Result := Fallback; + except + on E : Exception do + begin + Result := Fallback; + end; + end; + finally + FreeAndNil(_idHTTP); + FreeAndNil(LHandler); + end; +end; + +function GetUrlWithoutParams(const url: String): String; +var + _uri: TIdURI; +begin + Result := EmptyStr; + + if url <> EmptyStr then + begin + _uri := TIdURI.Create(url); + try + Result := _uri.Protocol + '://' + _uri.Host + ':' + _uri.Port + '/'; + finally + FreeAndNil(_uri); + end; + end; +end; + +function GetMacAddress: string; +var + Lib: Cardinal; + Func: function(GUID: PGUID): Longint; stdcall; + GUID1, GUID2: TGUID; +begin + Result := EmptyStr; + Lib := LoadLibrary('rpcrt4.dll'); + if Lib <> 0 then + begin + try + @Func := GetProcAddress(Lib, 'UuidCreateSequential'); + if Assigned(Func) then + begin + if (Func(@GUID1) = 0) and + (Func(@GUID2) = 0) and + (GUID1.D4[2] = GUID2.D4[2]) and + (GUID1.D4[3] = GUID2.D4[3]) and + (GUID1.D4[4] = GUID2.D4[4]) and + (GUID1.D4[5] = GUID2.D4[5]) and + (GUID1.D4[6] = GUID2.D4[6]) and + (GUID1.D4[7] = GUID2.D4[7]) then + begin + Result := + IntToHex(GUID1.D4[2], 2) + '-' + + IntToHex(GUID1.D4[3], 2) + '-' + + IntToHex(GUID1.D4[4], 2) + '-' + + IntToHex(GUID1.D4[5], 2) + '-' + + IntToHex(GUID1.D4[6], 2) + '-' + + IntToHex(GUID1.D4[7], 2); + end; + end; + finally + FreeLibrary(Lib) + end; + end; +end; + +function GetWindowsDir: string; +var + PWindowsDir: array [0..255] of Char; +begin + Result := EmptyStr; + GetWindowsDirectory(PWindowsDir,255); + Result := StrPas(PWindowsDir); +end; + +function GetPowerStatus: string; +var + PowerStatus: TSystemPowerStatus; +begin + Result := EmptyStr; + GetSystemPowerStatus(PowerStatus); + if PowerStatus.ACLineStatus=1 then + Result := 'AC power online' + else + Result := 'AC power offline'; +end; + +function GetSystemDecimal: string; +var + MyDecimal: PChar; +begin + Result := EmptyStr; + MyDecimal := Pwidechar(Widestring(EmptyStr)); + try + MyDecimal:=StrAlloc(10); + GetLocaleInfo( + LOCALE_SYSTEM_DEFAULT, + LOCALE_SDECIMAL, + MyDecimal, + 10); + Result := 'System decimal is - "'+MyDecimal+'"'; + finally + FreeMem(MyDecimal); + end; +end; + +function GetPcName: string; +var + CompName: array[0..256] of Char; + i: DWord; +begin + Result := EmptyStr; + i:=256; + GetComputerName(CompName, i); + Result := StrPas(CompName); +end; + +function getMemoryUsed: Integer; +var + pmc: PROCESS_MEMORY_COUNTERS; +begin + pmc.cb := sizeof(pmc); + + Result := 0; + if GetProcessMemoryInfo(GetCurrentProcess, @pmc, sizeof(pmc)) then + Result := pmc.WorkingSetSize; +end; + +function GetUser: string; +var + StrUserName: PChar; + Size: DWord; +begin + Result := EmptyStr; + StrUserName := Pwidechar(Widestring(EmptyStr)); + try + Size:=250; + GetMem(StrUserName, Size); + GetUserName(StrUserName, Size); + Result := StrPas(StrUserName); + finally + FreeMem(StrUserName); + end; +end; + +function GetWindowsVersion: string; +begin + Result := TOSVersion.ToString; +end; + +function TimeInWindows: string; +begin + Result := FormatFloat('0#', GetTickCount div 1000 div 60); +end; + +function FreeDiskSpace(strDisk: string): string; +var + Bytes, Sectors: Cardinal; + freeClusters, totalClusters: Cardinal; +begin + GetDiskFreeSpace(PChar(strDisk), Sectors, Bytes, freeClusters, totalClusters); + FreeDiskSpace := FormatFloat('###,###', (Sectors * Bytes * freeClusters)); +end; + +function ScreenResolution: string; +var + X, Y: longint; +begin + Result := EmptyStr; + + X := GetSystemMetrics(SM_CXSCREEN); + Y := GetSystemMetrics(SM_CYSCREEN); + Result := Format('%dx%d', [X, Y]); +end; + +function GetScrollState: string; +begin + Result := EmptyStr; + + if Odd(GetKeyState(VK_SCROLL)) then + Result := 'On' + else + Result := 'Off'; +end; + +function GetLanguage: string; +var + LanguageID: LangID; + Lang: array[0..100] of char; +begin + Result := EmptyStr; + + LanguageID := GetSystemDefaultLangID; + VerLanguageName(LanguageID, Lang, 100); + Result := string(Lang); +end; + + +function GetWindowPID(sFile: String): Cardinal; +var + verSystem: TOSVersionInfo; + hdlProcess: THandle; + bPath: Bool; + arrPid: Array [0..1023] of DWORD; + iC: DWord; + k,iCount: Integer; + arrModul: Array [0..299] of Char; + hdlModul: HMODULE; +begin + Result := 0; + if ExtractFileName(sFile)=sFile then + bPath:=false + else + bPath:=true; + + verSystem.dwOSVersionInfoSize:=SizeOf(TOSVersionInfo); + GetVersionEx(verSystem); + if verSystem.dwPlatformId=VER_PLATFORM_WIN32_NT then + begin + EnumProcesses(@arrPid,SizeOf(arrPid),iC); + iCount := iC div SizeOf(DWORD); + for k := 0 to Pred(iCount) do + begin + hdlProcess:=OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,false,arrPid [k]); + if (hdlProcess<>0) then + begin + EnumProcessModules(hdlProcess,@hdlModul,SizeOf(hdlModul),iC); + GetModuleFilenameEx(hdlProcess,hdlModul,arrModul,SizeOf(arrModul)); + if bPath then + begin + if CompareText(arrModul,sFile) = 0 then + begin + Result := arrPid[k]; + end; + end + else + begin + if CompareText(ExtractFileName(arrModul),sFile) = 0 then + begin + Result := arrPid[k]; + end; + end; + CloseHandle(hdlProcess); + end; + end; + end; +end; + +function EnumProcess(hHwnd: HWND; lParam : integer; var FProcessa: Boolean; + var FHWND: HWND; var FPid: DWORD; var iListOfProcess: Integer): boolean; stdcall; +var + pPid : DWORD; + ClassName : string; + AHWND : HWND; +begin + Result := True; + + try + if not FProcessa then + Exit; + + FHWND := 0; + //Se retornar nulo, cancela e sai + if (hHwnd=NULL) then + begin + result := false; + end + else + begin + AHWND := hHWND; + GetWindowThreadProcessId(hHwnd,pPid); + //ClassName do Processo + SetLength(ClassName, 255); + SetLength(ClassName, + GetClassName(hHwnd, + PChar(className), + Length(className))); + if (pPid = FPid) and (UpperCase(className) = UpperCase('TApplication')) then + begin + FHWND := AHWND; + FProcessa := False; + Result := True; + Abort; + end; + Result := True; + end; + except + end; +end; + +function EnumWindowsProc (Wnd: HWND; List: TStringList): BOOL; stdcall; +(*Copy all Task-names into a list*) +var + Caption: Array [0..128] of Char; +begin + Result := True; + SendMessage(Wnd, WM_GETTEXT, Sizeof(Caption), integer(@Caption)); + List.AddObject(Caption, TObject(Wnd)); +end; + + +function KillTask(const ExeFileName: string): Integer; +const + PROCESS_TERMINATE = $0001; +var + ContinueLoop: BOOL; + FSnapshotHandle: THandle; + FProcessEntry32: TProcessEntry32; +begin + Result := 0; + FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); + FProcessEntry32.dwSize := SizeOf(FProcessEntry32); + ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); + while Integer(ContinueLoop) <> 0 do + begin + if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = + UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) = + UpperCase(ExeFileName))) then + Result := Integer(TerminateProcess( + OpenProcess(PROCESS_TERMINATE, + BOOL(0), + FProcessEntry32.th32ProcessID), + 0)); + ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); + end; + CloseHandle(FSnapshotHandle); +end; + +function GetMD5FromString(const text: string): String; +var + hashMessageDigest5 : TIdHashMessageDigest5; +begin + Result := EmptyStr; + hashMessageDigest5 := TIdHashMessageDigest5.Create; + try + Result := IdGlobal.IndyLowerCase(hashMessageDigest5.HashStringAsHex(Trim(text))); + finally + FreeAndNil(hashMessageDigest5); + end; +end; + +function MD5File(const FileName: string): string; +var + IdMD5: TIdHashMessageDigest5; + FS: TFileStream; +begin + IdMD5 := TIdHashMessageDigest5.Create; + FS := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite); + try + Result := IdMD5.HashStreamAsHex(FS) + finally + FS.Free; + IdMD5.Free; + end; +end; + +function GetDllName: string; +var + szFileName: array[0..MAX_PATH] of Char; +begin + Result := EmptyStr; + FillChar(szFileName, SizeOf(szFileName), #0); + if ( Winapi.Windows.GetModuleFileName(HInstance, szFileName, MAX_PATH) ) > 0 then + Result := string(szFileName); +end; + +function GetTempDirectory: string; +var + tempFolder: array[0..MAX_PATH] of Char; +begin + Result := 'C:\Windows\Temp'; + GetTempPath(MAX_PATH, @tempFolder); + Result := StrPas(tempFolder); +end; + +function GetLastErrorMessage: string; +begin + Result := EmptyStr; + Result := SysErrorMessage(Winapi.Windows.GetLastError); +end; + +function TryForceDirectories(const aDir: string): string; +begin + Result := EmptyStr; + if not ForceDirectories(aDir) then + Result := GetLastErrorMessage; +end; + +function TryForceDirectories(const aDir: string; out aErrorMessage: string): boolean; +begin + aErrorMessage := TryForceDirectories(aDir); + Result := aErrorMessage = EmptyStr; +end; + +function GetSHA1FromString(const text: string): string; +var + _sha1: TIdHashSHA1; +begin + Result := EmptyStr; + _sha1 := TIdHashSHA1.Create; + try + Result := Trim(_sha1.HashStringAsHex(text)); + Result := LeftStr(Result, 40); + finally + FreeAndNil(_sha1); + end; +end; + +function GetSHA1FromFile(const path: string): string; +var + _sha1: TIdHashSHA1; + _file: TFileStream; + _reader: TBinaryReader; + _size: integer; +begin + Result := EmptyStr; + + _sha1 := TIdHashSHA1.Create; + _size := GetFileSize(path); + if FileExists(path) then + begin + _file := TFileStream.Create(path,fmOpenRead); + _reader := TBinaryReader.Create(_file); + try + if _size > 0 then + Result := Trim(_sha1.HashBytesAsHex(TIdBytes(_reader.ReadBytes(_size)))); + Result := LeftStr(Result, 40); + finally + FreeAndNil(_sha1); + FreeAndNil(_file); + FreeAndNil(_reader); + end; + end; +end; + +function GetFileSize(const filename: widestring): Int64; +var + sr: TSearchRec; +begin + Result := -1; + try + {$WARNINGS OFF} + if ((FileExists(filename)) and (FindFirst(filename, faAnyFile, sr) = 0)) then + Result := Int64(sr.FindData.nFileSizeHigh) shl Int64(32) + + Int64(sr.FindData.nFileSizeLow); + {$WARNINGS ON} + finally + FindClose(sr); + end; +end; + +function GetTelaAprovacao(conn: TosSQLConnection) : string; +var + qry: TosSQLQuery; +begin + Result := ''; + try + qry := TosSQLQuery.Create(nil); + qry.SQLConnection := conn; + qry.SQL.Text := 'select upper(r.resclassname) as resclassname from recurso r where r.nome = ''Aprovação Resultados'' or (r.filterdefname = ''fltAprovaResultado'')'; + qry.Open; + if not qry.IsEmpty then + Result := qry.FieldByName('resclassname').AsString; + finally + qry.Close; + FreeAndNil(qry); + end; +end; + +function GetPageAsString(const url: String): String; +var + lHTTP: TIdHTTP; + lUri: TIdURI; + IOHandler: TIdSSLIOHandlerSocketOpenSSL; +begin + Result := EmptyStr; + + if TestConnection(url) then + begin + lHTTP := TIdHTTP.Create(nil); + + IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(lHTTP); + IOHandler.SSLOptions.Method := sslvTLSv1_2; + IOHandler.SSLOptions.Mode := sslmUnassigned; + IOHandler.SSLOptions.SSLVersions := AllSSLVersions; + + lUri := TIdUri.Create; + try + lHTTP.IOHandler := IOHandler; + lHTTP.HandleRedirects := True; + lHTTP.AllowCookies := True; + Result := lHTTP.Get(lUri.URLEncode(url)); + finally + FreeAndNil(IOHandler); + FreeAndNil(lHTTP); + FreeAndNil(lUri); + end; + end; +end; + +function GetSpecialFolderPath(const folder : integer) : string; + const + SHGFP_TYPE_CURRENT = 0; + var + path: array [0..MAX_PATH] of char; + begin + if SUCCEEDED(SHGetFolderPath(0,folder,0,SHGFP_TYPE_CURRENT,@path[0])) then + Result := path + else + Result := ''; + end; + +function GetProgramDataAppDataFolder: string; +begin + Result := GetSpecialFolderPath(CSIDL_COMMON_APPDATA); //C:\ProgramData +end; + +function HandleException(const aURL: string): string; +var + _Exception: Exception; +begin + _Exception := Exception(ExceptObject); + Result := _Exception.Message; + if _Exception is EIdOSSLCouldNotLoadSSLLibrary then + Result := 'DLLs libeay32.dll e ssleay32.dll não encontradas: ' + else if _Exception is EIdIOHandlerPropInvalid then + Result := 'Protocolo inválido, tente alternar entre http:// e https://. URL: ' + aURL + else if _Exception is EIdConnectTimeout then + Result := 'Servidor indisponível (Connect time out):' + aURL + else if _Exception is EIdReadTimeOut then + Result := 'Servidor indisponível (Read time out):' + aURL + else if _Exception is EIdSocketError then + Result := 'Verifique se o servidor está respondendo ou se a URL/Porta está(ão) correta(s): ' + aURL + else if _Exception is EIdHTTPProtocolException then + begin + if EIdHTTPProtocolException(_Exception).ErrorCode = 500 then + Result := Format('Erro ao conectar-se ao servidor. Código de erro: %d. Erro interno no servidor. ',[EIdHTTPProtocolException(_Exception).ErrorCode]) + else + Result := Format('Erro ao conectar-se ao servidor. Código de erro: %d. Erro: %s.',[EIdHTTPProtocolException(_Exception).ErrorCode, EIdHTTPProtocolException(_Exception).ErrorMessage]); + end; +end; + +procedure ParseJSONObject(aDict: TKeyValue; aJsonValue: TJSONValue; + aJsonString: TJSONString; aJsonPairEnum: TJSONPairEnumerator; + aJsonArrayEnum: TJSONArrayEnumerator); +var + _jsonPairEnum: TJSONPairEnumerator; + _jsonArrayEnum: TJSONArrayEnumerator; + _jsonPair: TJSONPair; + _jsonString: TJSONString; + _jsonValue: TJSONValue; +begin + _jsonString := nil; + // ... IS A JSONObject? + if (aJsonValue is TJSONObject) then + begin + _jsonPairEnum := (aJsonValue as TJSONObject).GetEnumerator; + if (_jsonPairEnum.MoveNext) then + begin + _jsonPair := _jsonPairEnum.Current; + _jsonString := _jsonPair.JSONString; + _jsonValue := _jsonPair.JSONValue; + parseJSONObject(aDict, _jsonValue, _jsonString, _jsonPairEnum, + aJsonArrayEnum); + end; + end + // ... IS A JSON ARRAY? + else if (aJsonValue is TJsonArray) then + begin + _jsonArrayEnum := (aJsonValue as TJsonArray).GetEnumerator; + if (_jsonArrayEnum.MoveNext) then + begin + _jsonValue := _jsonArrayEnum.Current; + parseJSONObject(aDict, _jsonValue, nil, aJsonPairEnum, _jsonArrayEnum); + end; + end + // ... IS A JSON STRING? + else if (aJsonValue is TJSONString) then + begin + if (aJsonString <> nil) then + aDict.Add(aJsonString.Value, aJsonValue.Value); + end + // ... IS A JSONNull? + else if (aJsonValue is TJSONNull) then + begin + if (aJsonString <> nil) then + aDict.Add(aJsonString.Value, aJsonValue.Value); + end; + // ... to complete + // ... IS A JSONNumber? + // ... IS A JSONBool? + + // ... MOVE NEXT PROPERTY OF OBJECT + if (aJsonPairEnum <> nil) then + begin + if (aJsonPairEnum.MoveNext) then + begin + _jsonPair := aJsonPairEnum.Current; + _jsonString := _jsonPair.JSONString; + _jsonValue := _jsonPair.JSONValue; + // ... CALL RECURSIVE + parseJSONObject(aDict, _jsonValue, _jsonString, aJsonPairEnum, + aJsonArrayEnum); + end; + end; + // ... MOVE NEXT ITEM OF ARRAY + if (aJsonArrayEnum <> nil) then + begin + if (aJsonArrayEnum.MoveNext) then + begin + _jsonValue := aJsonArrayEnum.Current; + // ... CALL RECURSIVE + parseJSONObject(aDict, _jsonValue, _jsonString, aJsonPairEnum, aJsonArrayEnum); + end; + end; +end; + +function GetIdHttp: TIdHTTP; +begin + Result := acNetUtils.getHTTPInstance; + // verificar se o servidor está ativo. + Result.ConnectTimeout := 30000; + Result.ReadTimeout := 30000; + Result.Request.Clear; + Result.Request.Connection := 'keep-alive'; + Result.HandleRedirects := True; +end; + +function getJsonStringFromServer(const aURL: string; var aException: string): string; +var + _http: TIdHTTP; + _Response: TStringStream; + IOHandler: TIdSSLIOHandlerSocketOpenSSL; +begin + aException := EmptyStr; + _Response := TStringStream.Create(EmptyStr, TEncoding.UTF8); + _http := GetIdHttp; + if aURL.ToLower.Contains('https') then + begin + IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(_http); + IOHandler.SSLOptions.Method := sslvSSLv23; + IOHandler.SSLOptions.Mode := sslmUnassigned; + IOHandler.SSLOptions.SSLVersions := AllSSLVersions; + _http.IOHandler := IOHandler; + end; + try + try + _http.Get(aURL, _Response); + if _http.ResponseCode = 204 then + Result := EmptyStr + else + Result := _Response.DataString; + + _http.Disconnect; + except + aException := UtilsUnit.HandleException(aURL); + end; + finally + if aURL.ToLower.Contains('https') then + FreeAndNil(IOHandler); + FreeAndNil(_http); + FreeAndNil(_Response); + end; +end; + +function MappJsonToDict(const aJsonString: string) : TJsonArray; +begin + Result := nil; + if aJsonString <> EmptyStr then + begin + Result := TJSONObject.ParseJSONValue(TEncoding.ASCII.getBytes(aJsonString), 0) as TJsonArray; + end; +end; + +function GetListaCamposTabela(conn: TSQLConnection; pTabela: String): TStringList; +var + qry: TosSQLQuery; +begin + Result := TStringList.Create; + try + qry := TosSQLQuery.Create(nil); + qry.SQLConnection := conn; + qry.SQL.Text := 'select rdb$field_name AS CAMPOS from rdb$relation_fields rf where rf.rdb$relation_name = :nomeTabela '; + qry.ParamByName('nomeTabela').AsString := UPPERCASE(pTabela); + qry.Open; + qry.First; + while not qry.Eof do + begin + Result.Add(qry.FieldByName('CAMPOS').AsString); + qry.Next; + end; + finally + qry.Close; + FreeAndNil(qry); + end; +end; + +procedure SaveToFile(const aFilename, aContent: string); +var + FileStream: TFileStream; + _FH: NativeUInt; + FFileLock: THandle; +begin + FFileLock := CreateMutex(nil, False, 'UtilsUnit_FileLock'); + WaitForSingleObject(FFileLock, INFINITE); + try + if not FileExists(aFilename) then + _FH := fmCreate + else + _FH := fmOpenReadWrite; + + FileStream := TFileStream.Create(aFileName, _FH, fmShareDenyNone); + try + FileStream.Seek(0, soFromEnd); + FileStream.WriteBuffer(Pointer(aContent)^, (Length(aContent) * szChar)); + finally + FileStream.Free; + end; + finally + ReleaseMutex(FFileLock); + CloseHandle(FFileLock); + end; +end; + +function LoadFromFile(const aFileName: string): string; +var + _SStream: TStringStream; +begin + Result := EmptyStr; + if FileExists(aFileName) then + begin + _SStream := TStringStream.Create(aFileName, TEncoding.ANSI); + try + _SStream.LoadFromFile(aFileName); + Result := _SStream.DataString; + finally + _SStream.Free; + end; + end; +end; + +Function FileIsOpen(const FileName : TFileName) : Boolean; +begin + Result := False; + try + With TFileStream.Create( FileName, fmOpenread or fmShareExclusive) + do Free; + except + Result := True; + end; +end; + +procedure UpdateProxy(dir: string); +var + configFileName, porta, proxy: string; + configFile: TStringList; + i: integer; +begin + proxy := ParametroSistemaData.MasterClientDatasetENDERECOPROXY.asString; + porta := ParametroSistemaData.MasterClientDatasetPORTAPROXY.asString; + + if (proxy <> '') and (porta <> '') then + begin + configFile := TStringList.Create; + configFileName := dir + '\prefs.js'; + + configFile.LoadFromFile(configFileName); + i := 0; + while (i < configFile.Count) do + begin + if (pos('user_pref("network.cookie.prefsMigrated', configFile.strings[i]) > 0) + or (pos('user_pref("network.predictor.cleaned-up', configFile.strings[i]) > 0) + or (pos('user_pref("network.proxy', configFile.strings[i]) > 0) then + configFile.Delete(i) + else + Inc(i); + end; + + configFile.add('user_pref("network.cookie.prefsMigrated", true);'); + configFile.add('user_pref("network.predictor.cleaned-up", true);'); + configFile.add('user_pref("network.proxy.backup.ftp", "");'); + configFile.add('user_pref("network.proxy.backup.ftp_port", 0);'); + configFile.add('user_pref("network.proxy.backup.socks", "");'); + configFile.add('user_pref("network.proxy.backup.socks_port", 0);'); + configFile.add('user_pref("network.proxy.backup.ssl", "");'); + configFile.add('user_pref("network.proxy.backup.ssl_port", 0);'); + configFile.add('user_pref("network.proxy.ftp", "' + proxy + '");'); + configFile.add('user_pref("network.proxy.ftp_port", ' + porta + ');'); + configFile.add('user_pref("network.proxy.http", "' + proxy + '");'); + configFile.add('user_pref("network.proxy.http_port", ' + porta + ');'); + configFile.add('user_pref("network.proxy.share_proxy_settings", true);'); + configFile.add('user_pref("network.proxy.socks", "' + proxy + '");'); + configFile.add('user_pref("network.proxy.socks_port", ' + porta + ');'); + configFile.add('user_pref("network.proxy.ssl", "' + proxy + '");'); + configFile.add('user_pref("network.proxy.ssl_port", ' + porta + ');'); + configFile.add('user_pref("network.proxy.type", 1);'); + + configFile.SaveToFile(configFileName); + end; +end; + +procedure RemoveDiretorio(Dir: String); +var + Result: TSearchRec; Found: Boolean; +begin + Found := False; + if FindFirst(Dir + '\*', faAnyFile, Result) = 0 then + while not Found do begin + if (Result.Attr and faDirectory = faDirectory) AND (Result.Name <> '.') AND (Result.Name <> '..') then RemoveDiretorio(Dir + '\' + Result.Name) + else if (Result.Attr and faAnyFile <> faDirectory) then DeleteFile(Dir + '\' + Result.Name); + Found := FindNext(Result) <> 0; + end; + FindClose(Result); RemoveDir(Dir); +end; + +function ExtractBetween(const Value, A, B: string): string; +var + aPos, bPos: Integer; +begin + result := ''; + aPos := Pos(A, Value); + if aPos > 0 then begin + aPos := aPos + Length(A); + bPos := PosEx(B, Value, aPos); + if bPos > 0 then begin + result := Copy(Value, aPos, bPos - aPos); + end; + end; +end; + +function LocalizaElementoArray(Element: array of Integer; Valor: Integer): Boolean; +var + I: Integer; +begin + Result := False; + for I := 0 to Length(Element) - 1 do + if Valor = Element[I] then + begin + Result := True; + break + end; +end; + +function GetJsonValue(jsonObject: TJsonObject; campo: string): string; +begin + Result := ''; + if jsonObject.Get(campo) <> nil then + Result := jsonObject.Get(campo).JsonValue.Value; +end; + +function Is64BitOS: Boolean; +const + PROCESSOR_ARCHITECTURE_INTEL = $0000; + PROCESSOR_ARCHITECTURE_IA64 = $0006; + PROCESSOR_ARCHITECTURE_AMD64 = $0009; + PROCESSOR_ARCHITECTURE_UNKNOWN = $FFFF; +var + xSysInfo: TSystemInfo; +begin + GetNativeSystemInfo(xSysInfo); + case xSysInfo.wProcessorArchitecture of + PROCESSOR_ARCHITECTURE_AMD64, PROCESSOR_ARCHITECTURE_IA64: + Result := True; + else + Result := False; + end; +end; + +function IsWindows64: Boolean; +type + TIsWow64Process = function(AHandle:THandle; var AIsWow64: BOOL): BOOL; stdcall; +var + vKernel32Handle: DWORD; + vIsWow64Process: TIsWow64Process; + vIsWow64: BOOL; +begin + + Result := False; + + vKernel32Handle := LoadLibrary('kernel32.dll'); + if (vKernel32Handle = 0) then Exit; + + try + + @vIsWow64Process := GetProcAddress(vKernel32Handle, 'IsWow64Process'); + if not Assigned(vIsWow64Process) then Exit; + + vIsWow64 := False; + if (vIsWow64Process(GetCurrentProcess, vIsWow64)) then + Result := vIsWow64; + + finally + FreeLibrary(vKernel32Handle); + end; +end; + +end. + diff --git a/Lib/UtilsUnitGUI.pas b/Lib/UtilsUnitGUI.pas new file mode 100644 index 0000000..73eab1d --- /dev/null +++ b/Lib/UtilsUnitGUI.pas @@ -0,0 +1,972 @@ +unit UtilsUnitGUI; + +interface + +uses + Vcl.Forms, Vcl.Controls, ComCtrls, DBCtrls, wwdbdatetimepicker, Wwdbcomb, StdCtrls, Buttons, Wwdbgrid, + wwdbedit, acSysUtils, Printers, osComboSearch, System.Classes, DB, DBClient, Winapi.PsApi, Winapi.Windows, + Vcl.Graphics, ShellAPI, UMensagemAguarde, SysUtils, UtilsUnit, Variants, Winapi.Messages, Winapi.TlHelp32, + Winsock, StrUtils; + +type + varArrayOfcomps = array of TComponent; + TFuncaoParametroGetDesc = function(const vValor : Variant) : string; + +const + CSIDL_COMMON_APPDATA = $0023; + +procedure setHabilitaDBEdit(edt: TDBEdit; enabled: boolean); +procedure setHabilitaButton(btn: TButton; enabled: boolean); +procedure setHabilitaSpeedButton(btn: TSpeedButton; enabled: boolean); +procedure setHabilitawwComboBox(comboBox: TwwDBComboBox; enabled: boolean); +procedure setHabilitaComboBox(comboBox: TComboBox; enabled: boolean); +procedure setHabilitawwDateTimePicker(dateTimePicker: TwwDBDateTimePicker; enabled: boolean); +procedure setHabilitaDBCheckBox(edtd: TDBCheckBox; enabled: boolean); +procedure setHabilitaDBMemo(comp: TDBMemo; enabled: boolean); +procedure setHabilitawwDBGrid(grd: TwwDBGrid; enabled: boolean); +procedure setHabilitaEdit(edit: TEdit; enabled: boolean); +procedure setHabilitaComboSearch(cbo: TosComboSearch; enabled: boolean); +procedure setHabilitaComponente(comp: TComponent; enabled: boolean); +procedure habilitaComponentes(comps: varArrayOfcomps); +procedure desHabilitaComponentes(comps: array of TComponent); +procedure ImprimirImpressoraTermica(const comando, impressora: String; var erro: string); +function ConverteRTF(rtf: string): string; +function ConverteTextoToRTF(const Texto: string; FontSize: integer = 0; FontName: string= ''): string; +function getCampoSemRTF(const vValor : Variant):String; +function CriarMsgLogAlteracaoField(aField : TField):String; overload; +function CriarMsgLogAlteracaoField(aField : TField; aFuncaoGetDescricao : TFuncaoParametroGetDesc):String; overload; +function CriarMsgLogAlteracaoFieldLookup(aField : TField; oCDSLookup: TClientDataSet; + const sCampoChave: String; const sCampoRetorno: String):String; +function CriarMsgLogAlteracaoCDS(oCDS: TClientDataSet; key: string; aCamposDescricao, aCamposLOG: Array of String): String; +function CriarMsgLogInclusaoExclusaoCDS(AlteradoCDS: TClientDataSet; OriginalCDS: TClientDataSet; + const sCampoChave: String; aCampoDescricao: Array of String): String; +function CriarMsgLogCDSNotLocateOrigemDestino(OriginalCDS: TClientDataSet; AlteradoCDS: TClientDataSet; + const sCampoChave: String; aCampoDescricao: Array of String; const sDescricao : String ): String; +function CriarMsgLogCDSNovoRegistro(pCDS: TClientDataSet) : String; +function isRTFValue(vValor: Variant): Boolean; //{\rtf +procedure TrimAppMemorySize; +function dgCreateProcess(const FileName: string; SleepInterval: integer = 10000): boolean; +function GetPrinters: string; +function GetProcessList: string; +function GetSystemInfo: string; +function GetTaskHandle(const ATaskName : string; var FTaskName: String; var FPid: PDWORD_PTR; + var FProcessa: Boolean; var FHWND: HWND; var iListOfProcess: Integer) : HWND; +procedure ExecuteAndWait(const aCommando: string); +function Execute(const aCommando: string; const ShowWindow: boolean; var aProcessInformation: TProcessInformation): boolean; +function GetDosOutput(outPut: TMemo; CommandLine: string): string; +procedure WaitProcess(const aProcessInformation: TProcessInformation; aCheckIsAlive: boolean; aThreadId: TThreadID; const aPort: integer); +procedure CloseProcess(const aProcessInformation: TProcessInformation); +function LocalIp: string; +function ValidaTravamento(const Aplicacao: string; var FTaskName: string; var FPid: PDWORD_PTR; var FProcessa: Boolean; var FHWND: HWND; var iListOfProcess: Integer) : Boolean; +function ProcessExists(exeFileName: string; var FTaskName: string; var FPid: PDWORD_PTR; var FProcessa: Boolean; var FHWND: HWND; var iListOfProcess: Integer): Boolean; +procedure MakeRounded(Control: TWinControl); +function SendMessageToTCPServer(const aMessage: string; aPort: integer): boolean; +function UnZip(ZipName: string; Destination: string): boolean; + +implementation + +uses IdIPWatch, IdTCPClient, WinSpool, Zip; + +procedure setHabilitaButton(btn: TButton; enabled: boolean); +begin + btn.Enabled := enabled; +end; + +procedure setHabilitaSpeedButton(btn: TSpeedButton; enabled: boolean); +begin + btn.Enabled := enabled; +end; + +procedure setHabilitaDBEdit(edt: TDBEdit; enabled: boolean); +begin + if enabled then + begin + edt.ReadOnly := false; + edt.color := clWhite; + end + else + begin + edt.ReadOnly := true; + edt.color := clBtnFace; + end; +end; + +procedure setHabilitawwComboBox(comboBox: TwwDBComboBox; enabled: boolean); +begin + if enabled then + begin + comboBox.ReadOnly := false; + comboBox.Color := clWhite; + end + else + begin + comboBox.ReadOnly := true; + comboBox.Color := clBtnFace; + end; +end; + +procedure setHabilitaComboBox(comboBox: TComboBox; enabled: boolean); +begin + if enabled then + begin + comboBox.Enabled := True; + comboBox.Color := clWhite; + end + else + begin + comboBox.Enabled := False; + comboBox.Color := clBtnFace; + end; +end; + +procedure setHabilitawwDateTimePicker(dateTimePicker: TwwDBDateTimePicker; enabled: boolean); +begin + if enabled then + begin + dateTimePicker.ReadOnly := false; + dateTimePicker.Color := clWhite; + end + else + begin + dateTimePicker.ReadOnly := true; + dateTimePicker.Color := clBtnFace; + end; +end; + +procedure setHabilitaDBCheckBox(edtd: TDBCheckBox; enabled: boolean); +begin + if enabled then + begin + edtd.ReadOnly := false; + end + else + begin + edtd.ReadOnly := true; + end; +end; + +procedure setHabilitawwDBGrid(grd: TwwDBGrid; enabled: boolean); +begin + if enabled then + begin + grd.ReadOnly := false; + end + else + begin + grd.ReadOnly := true; + end; +end; + + +procedure setHabilitaDBMemo(comp: TDBMemo; enabled: boolean); +begin + if enabled then + begin + comp.enabled := true; + comp.Color := clWhite; + end + else + begin + comp.enabled := false; + comp.Color := clBtnFace; + end; +end; + +procedure setHabilitaComponente(comp: TComponent; enabled: boolean); +begin + if comp is TosComboSearch then + setHabilitaComboSearch((comp as TosComboSearch), enabled); + if comp is TDBEdit then + setHabilitaDBEdit((comp as TDBEdit), enabled); + if comp is TwwDBComboBox then + setHabilitawwComboBox((comp as TwwDBComboBox), enabled); + if comp is TwwDBDateTimePicker then + setHabilitawwDateTimePicker((comp as TwwDBDateTimePicker), enabled); + if comp is TDBCheckBox then + setHabilitadbCheckBox((comp as TDBCheckBox), enabled); + if comp is TDBMemo then + setHabilitaDBMemo((comp as TDBMemo), enabled); + if comp is TwwDBGrid then + setHabilitawwDBGrid((comp as twwDBGrid), enabled); + if comp is TButton then + setHabilitaButton((comp as TButton), enabled); + if comp is TSpeedButton then + setHabilitaSpeedButton((comp as TSpeedButton), enabled); +end; + +procedure habilitaComponentes(comps: varArrayOfcomps); +var + i: integer; +begin + for i := low(comps) to high(comps) do + setHabilitaComponente(comps[i], true); +end; + +procedure desHabilitaComponentes(comps: array of TComponent); +var + i: integer; +begin + for i := low(comps) to high(comps) do + setHabilitaComponente(comps[i], false); +end; + +procedure setHabilitaEdit(edit: TEdit; enabled: boolean); +begin + if enabled then + begin + edit.ReadOnly := false; + edit.Color := clWhite; + end + else + begin + edit.ReadOnly := true; + edit.Color := clBtnFace; + end; +end; + +procedure ImprimirImpressoraTermica(const comando, impressora: String; var erro: string); +var + cmm: AnsiString; + I: Integer; + vPrinter : TPrinter; +begin + try + if length(trim(comando)) > 30 then + begin + vPrinter := TPrinter.Create; + try + for I := 0 to Printer.Printers.Count-1 do + begin + if POS('(', Printer.Printers[I]) > 0 then + begin + if Trim(UpperCase(copy(Printer.Printers[I], 1, POS('(', Printer.Printers[I])-1))) = Trim(UpperCase(copy(Impressora, 1, POS('(', Impressora)-1))) then + begin + vPrinter.PrinterIndex := I; + break; + end; + end + else + begin + if Trim(UpperCase(Printer.Printers[I])) = Trim(UpperCase(Impressora)) then + begin + vPrinter.PrinterIndex := I; + break; + end; + end; + end; + + //É necessário inicializar o comando com "N" para limpar as configurações da impressora caso ela tenha imprimido algum outro padrão de etiqueta. + //é necessário que haja 2 "N" logo no começo do comando; + cmm := AnsiString('N' + #10 + Trim(comando)+#10 + 'N' + #10); + StartDocPrinter(vPrinter.Handle, 1, @cmm); + vPrinter.BeginDoc; + + pword(cmm)^ := length(cmm)-2; + if ExtEscape(vPrinter.Handle, PASSTHROUGH, Length(cmm), pointer(cmm), 0, nil)<0 then + erro := 'Error ao enviar comandos para a impressora'; + EndDocPrinter(vPrinter.Handle); + vPrinter.EndDoc; + finally + FreeAndNil(vPrinter); + end; + end; + except + + end; +end; + +function ConverteRTF(rtf: string): string; +var + form: TForm; + richEdit: TRichEdit; + ss: TStringStream; +begin + try + ss := TStringStream.Create(rtf); + form := TForm.Create(nil); + richEdit := TRichEdit.Create(form); + richEdit.Parent := form; + richEdit.Lines.LoadFromStream(ss); + richEdit.PlainText := True; + Result := richEdit.Text; + finally + FreeAndNil(ss); + FreeAndNil(richEdit); + FreeAndNil(form); + end; +end; + +function ConverteTextoToRTF(const Texto: string; FontSize: integer = 0; FontName: string= ''): string; +var + form: TForm; + richEdit: TRichEdit; + ss: TStringStream; +begin + if isRTFValue(Texto) then + Result := Texto + else + begin + try + ss := TStringStream.Create(Texto); + form := TForm.Create(nil); + richEdit := TRichEdit.Create(form); + richEdit.Parent := form; + if FontSize > 0 then + richEdit.Font.Size := FontSize; + if not FontName.IsEmpty then + richEdit.Font.Name := FontName; + richEdit.Text:= Texto; + richEdit.PlainText := False; + richEdit.Lines.SaveToStream(ss); + Result := ss.DataString; + finally + FreeAndNil(ss); + FreeAndNil(richEdit); + FreeAndNil(form); + end; + end; +end; + +function getCampoSemRTF(const vValor : Variant):String; +var + sValor : String; +begin + result := EmptyStr; + if not ValueIsEmptyNull(vValor) then + begin + sValor := VarToStr(vValor); + if isRTFValue(sValor) then + result := ConverteRTF(sValor) + else + result := sValor; + end; +end; + +function CriarMsgLogAlteracaoField(aField : TField):String; overload; +begin + Result := EmptyStr; + if (aField.FieldKind <> fkLookup) and (aField.DataType <> ftDataSet) and (FieldHasChanged(aField)) then + Result := Format(sMODELOMSGLOG,[aField.DisplayLabel, getCampoSemRTF(aField.OldValue), + getCampoSemRTF(aField.NewValue)]); +end; + +function CriarMsgLogAlteracaoField(aField : TField; aFuncaoGetDescricao : TFuncaoParametroGetDesc):String; overload; +begin + Result := EmptyStr; + if (aField.FieldKind <> fkLookup) and (FieldHasChanged(aField)) then + Result := Format(sMODELOMSGLOG,[aField.DisplayLabel, aFuncaoGetDescricao(aField.OldValue), + aFuncaoGetDescricao(aField.NewValue)]); +end; + +function CriarMsgLogAlteracaoFieldLookup(aField : TField; oCDSLookup: TClientDataSet;const sCampoChave: String; + const sCampoRetorno: String):String; +var + sDescOld, sDescNew : String; +begin + sDescOld := EmptyStr; + sDescNew := EmptyStr; + Result := EmptyStr; + if FieldHasChanged(aField) then + begin + if not ValueIsEmptyNull(aField.OldValue) then + sDescOld := oCDSLookup.Lookup(sCampoChave, aField.OldValue, sCampoRetorno); + if not ValueIsEmptyNull(aField.NewValue) then + sDescNew := oCDSLookup.Lookup(sCampoChave, aField.NewValue, sCampoRetorno); + + if (sDescOld <> EmptyStr) or (sDescNew <> EmptyStr) then + Result := Format(sMODELOMSGLOG,[aField.DisplayLabel, sDescOld, sDescNew]); + end; +end; + +function CriarMsgLogAlteracaoCDS(oCDS: TClientDataSet; key: string; aCamposDescricao, aCamposLOG: Array of String): String; +var + i : Integer; + bm : TBookmark; + aMsgReg, aMsgAlt : String; +begin + Result := EmptyStr; + if (oCDS = nil) or (not oCDS.Active) or (oCDS.RecordCount = 0) then + Exit; + bm := oCDS.Bookmark; + oCDS.DisableControls; + try + oCDS.First; + while not oCDS.Eof do + begin + aMsgReg := EmptyStr; + aMsgAlt := EmptyStr; + // loga se não for inclusão + if not ValueIsEmptyNull(oCDS.FieldByName(key).OldValue) then + begin + // Todos os Campos + if Length(aCamposLOG)=0 then + begin + for i := 0 to oCDS.FieldCount-1 do + begin + if oCDS.FieldByName(oCDS.Fields[i].FieldName).FieldKind <> fkLookup then + aMsgAlt := aMsgAlt + CriarMsgLogAlteracaoField( + oCDS.FieldByName(oCDS.Fields[i].FieldName) ); + end; + end + // campos do Array + else + begin + for i := 0 to Length(aCamposLOG)-1 do + begin + aMsgAlt := aMsgAlt + CriarMsgLogAlteracaoField( oCDS.FieldByName(aCamposLOG[i]) ); + end; + end; + + if (Length(aCamposDescricao) > 0) and (aMsgAlt <> EmptyStr) then + begin + aMsgReg := EmptyStr; + for i := 0 to Length(aCamposDescricao)-1 do + begin + if aMsgReg <> EmptyStr then + aMsgReg := aMsgReg + ', '; + aMsgReg := aMsgReg + getCampoSemRTF(oCDS.FieldByName(aCamposDescricao[i]).AsString); + end; + aMsgReg := #13 + #13 + 'Alterado ' + aMsgReg; + end; + + // Copy retira uma linha no começo da mensagem dos campos + if aMsgAlt <> EmptyStr then + Result := Result + aMsgReg + Copy(aMsgAlt, 2, length(aMsgAlt)); + end; + oCDS.Next; + end; + finally + oCDS.GotoBookmark(bm); + oCDS.EnableControls; + end; +end; + +function CriarMsgLogInclusaoExclusaoCDS(AlteradoCDS: TClientDataSet; OriginalCDS: TClientDataSet; + const sCampoChave: String; aCampoDescricao: Array of String): String; +begin + Result := EmptyStr; + AlteradoCDS.DisableControls; + try + if OriginalCDS <> nil then + begin + // Verifica Registros Excluidos + Result := Result + CriarMsgLogCDSNotLocateOrigemDestino(OriginalCDS, AlteradoCDS, sCampoChave, aCampoDescricao, + 'Exclusão: '); + + // Verifica Registros Incluídos + Result := Result + CriarMsgLogCDSNotLocateOrigemDestino(AlteradoCDS, OriginalCDS, sCampoChave, aCampoDescricao, + 'Inclusão: '); + end; + finally + AlteradoCDS.EnableControls; + end; +end; + +function CriarMsgLogCDSNotLocateOrigemDestino(OriginalCDS: TClientDataSet; AlteradoCDS: TClientDataSet; + const sCampoChave: String; aCampoDescricao: Array of String; const sDescricao : String ): String; +var + nRegCol : Integer; + aMsgReg : String; + _Str: TStringList; + _Valor: string; +begin + Result := EmptyStr; + _Str := TStringList.Create; + if OriginalCDS <> nil then + begin + try + OriginalCDS.First; + while not OriginalCDS.Eof do + begin + if not AlteradoCDS.Locate(sCampoChave, OriginalCDS.FieldByName(sCampoChave).AsVariant, []) then + begin + if Length(aCampoDescricao) > 0 then + begin + aMsgReg := EmptyStr; + for nRegCol := 0 to Length(aCampoDescricao)-1 do + begin + _valor := getCampoSemRTF(OriginalCDS.FieldByName(aCampoDescricao[nRegCol]).AsString); + if _valor <> EmptyStr then + _Str.Add(OriginalCDS.FieldByName(aCampoDescricao[nRegCol]).DisplayLabel + ': '+ _valor); + end; + end; + Result := Result + #13 + sDescricao + _Str.CommaText; + end; + OriginalCDS.Next; + end; + finally + FreeAndNil(_Str); + end; + end; +end; + +function CriarMsgLogCDSNovoRegistro(pCDS: TClientDataSet) : String; +var + I: Integer; + msg: String; +begin + Result := EmptyStr; + pCDS.First; + msg := ''; + for I := 0 to pCDS.FieldCount-1 do + begin + if (pCDS.Fields[I].FieldKind = fkData) and (pCDS.Fields[I].DataType <> ftBlob) and (pCDS.Fields[I].DataType <> ftMemo) and + (pCDS.Fields[I].DataType <> ftDataSet) then + msg := msg + pCDS.Fields[I].DisplayLabel + ' : ' + pCDS.Fields[I].AsString + #13#10; + end; + Result := msg; +end; + +function isRTFValue(vValor: Variant): Boolean; +begin + Result := False; + if not ValueIsEmptyNull(vValor) then + Result := Copy(vValor, 1, 5) = '{\rtf'; +end; + +procedure TrimAppMemorySize; +var + MainHandle : THandle; +begin + try + MainHandle := OpenProcess(PROCESS_ALL_ACCESS, false, GetCurrentProcessID) ; + SetProcessWorkingSetSize(MainHandle, $FFFFFFFF, $FFFFFFFF) ; + CloseHandle(MainHandle) ; + except + end; + Application.ProcessMessages; +end; + +function dgCreateProcess(const FileName: string; SleepInterval: integer = 10000): boolean; +var ProcInfo: TProcessInformation; + StartInfo: TStartupInfo; + FrmMensagem : TFrmMensagemAguarde; +begin + FrmMensagem := TFrmMensagemAguarde.Create(Application); + try + FrmMensagem.Show; + FrmMensagem.setMensagem('Aguarde, Carregando... ', True); + FrmMensagem.Update; + + {https://msdn.microsoft.com/en-us/library/ms686331.aspx} + FillMemory(@StartInfo, SizeOf(StartInfo), 0); + StartInfo.cb := SizeOf(StartInfo); + StartInfo.dwFlags := STARTF_RUNFULLSCREEN; + StartInfo.wShowWindow := SW_SHOWMAXIMIZED; + StartInfo.dwXSize := Screen.Width; + StartInfo.dwYSize := Screen.Height; + StartInfo.dwX := 0; + StartInfo.dwY := 0; + + Result := CreateProcess( + nil, + PChar(FileName), + nil, Nil, False, + DEBUG_PROCESS and CREATE_NEW_CONSOLE and CREATE_NEW_PROCESS_GROUP and BELOW_NORMAL_PRIORITY_CLASS, + nil, nil, + StartInfo, + ProcInfo); + finally + CloseHandle(ProcInfo.hProcess); + CloseHandle(ProcInfo.hThread); + SleepEx(SleepInterval, False); + FrmMensagem.Close; + FrmMensagem.Release; + end; +end; + +function GetPrinters: string; +begin + Result := Printer.Printers.Text; +end; + +function GetProcessList: string; +var + Wnd: hWnd; + Buff: array [0..127] of Char; +begin + Result := EmptyStr; + + Wnd:=GetWindow(Application.Handle, gw_HWndFirst); + while Wnd<>0 do + begin + if (Wnd<>Application.Handle) and + IsWindowVisible(Wnd) and + (GetWindow(Wnd, gw_Owner)=0) and + (GetWindowText(Wnd, Buff, sizeof(buff))<>0) then + begin + GetWindowText(Wnd, Buff, SizeOf(Buff)); + Result := Result + #13#10 + StrPas(Buff) + 'Memória: ' + IntToStr(getMemoryUsed); + end; + Wnd:=GetWindow(Wnd, gw_hWndNext); + end; +end; + +function GetTaskHandle(const ATaskName : string; var FTaskName: String; var FPid: PDWORD_PTR; + var FProcessa: Boolean; var FHWND: HWND; var iListOfProcess: Integer) : HWND; +begin + Result := FHWND; + + if Trim(ATaskName) <> EmptyStr then + begin + FTaskName := ATaskName; + FPid := PDWORD_PTR(GetWindowPID(ATaskName)); + FProcessa := True; + if not EnumWindows(@EnumProcess, iListOfProcess) then + Exit + else + Application.ProcessMessages; + + Result := FHWND; + end; +end; + +procedure ExecuteAndWait(const aCommando: string); +var + tmpStartupInfo: TStartupInfo; + tmpProcessInformation: TProcessInformation; + tmpProgram: String; +begin + tmpProgram := trim(aCommando); + FillChar(tmpStartupInfo, SizeOf(tmpStartupInfo), 0); + with tmpStartupInfo do + begin + cb := SizeOf(TStartupInfo); + wShowWindow := SW_HIDE; + end; + + try + if CreateProcess(nil, pchar(tmpProgram), nil, nil, true, CREATE_NO_WINDOW, + nil, nil, tmpStartupInfo, tmpProcessInformation) then + begin + // loop every 10 ms + while WaitForSingleObject(tmpProcessInformation.hProcess, 10) > 0 do + begin + Application.ProcessMessages; + end; + end + else + begin + RaiseLastOSError; + end; + finally + CloseHandle(tmpProcessInformation.hProcess); + CloseHandle(tmpProcessInformation.hThread); + end; +end; + +function Execute(const aCommando: string; const ShowWindow: boolean; var aProcessInformation: TProcessInformation): boolean; +var + tmpStartupInfo: TStartupInfo; + tmpProgram: String; + CreationFlags: Cardinal; + nHwnd: Hwnd; +begin + tmpProgram := trim(aCommando); + FillChar(tmpStartupInfo, SizeOf(tmpStartupInfo), 0); + with tmpStartupInfo do + begin + cb := SizeOf(TStartupInfo); + + if ShowWindow then + wShowWindow := SW_SHOWMINNOACTIVE + else + wShowWindow := SW_HIDE; + end; + if ShowWindow then + CreationFlags := NORMAL_PRIORITY_CLASS + else + CreationFlags := CREATE_NO_WINDOW or CREATE_DEFAULT_ERROR_MODE; + + if CreateProcess(nil, pchar(tmpProgram), nil, nil, true, CreationFlags, + nil, nil, tmpStartupInfo, aProcessInformation) then + Result := True + else + begin + Result := False; + RaiseLastOSError; + end; + nHwnd := FindWindow ('Spartacus', ''); + SendMessage(nHwnd, WM_SYSCOMMAND, SC_MINIMIZE, 0) +end; + +function GetDosOutput(outPut: TMemo; CommandLine: string): String; +var + SA: TSecurityAttributes; + SI: TStartupInfo; + PI: TProcessInformation; + StdOutPipeRead, StdOutPipeWrite: THandle; + WasOK: Boolean; + Buffer: array[0..255] of AnsiChar; + BytesRead: Cardinal; + Handle: Boolean; +begin + with SA do begin + nLength := SizeOf(SA); + bInheritHandle := True; + lpSecurityDescriptor := nil; + end; + CreatePipe(StdOutPipeRead, StdOutPipeWrite, @SA, 0); + try + with SI do + begin + FillChar(SI, SizeOf(SI), 0); + cb := SizeOf(SI); + dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES; + wShowWindow := SW_HIDE; + hStdInput := GetStdHandle(STD_INPUT_HANDLE); // don't redirect stdin + hStdOutput := StdOutPipeWrite; + hStdError := StdOutPipeWrite; + end; + Handle := CreateProcess(nil, PChar(CommandLine), + nil, nil, True, 0, nil, + nil, SI, PI); + Application.BringToFront; + CloseHandle(StdOutPipeWrite); + if Handle then + try + repeat + WasOK := ReadFile(StdOutPipeRead, Buffer, 255, BytesRead, nil); + if WasOK and (BytesRead > 0) then + begin + Buffer[BytesRead] := #0; + outPut.SelStart := outPut.GetTextLen; + outPut.SelLength := 0; + outPut.SelText := String(Buffer); + end; + until not WasOK or (BytesRead = 0); + WaitForSingleObject(PI.hProcess, INFINITE); + finally + CloseHandle(PI.hThread); + CloseHandle(PI.hProcess); + end; + finally + if StdOutPipeRead > 0 then + CloseHandle(StdOutPipeRead); + if StdOutPipeWrite > 0 then + CloseHandle(StdOutPipeWrite); + end; +end; + +function PortTCP_IsOpen(dwPort : Word; ipAddressStr:AnsiString) : boolean; +var + client : sockaddr_in; + sock : Integer; + + ret : Integer; + wsdata : WSAData; +begin + Result:=False; + ret := WSAStartup($0002, wsdata); //initiates use of the Winsock DLL + if ret<>0 then exit; + try + client.sin_family := AF_INET; //Set the protocol to use , in this case (IPv4) + client.sin_port := htons(dwPort); //convert to TCP/IP network byte order (big-endian) + client.sin_addr.s_addr := inet_addr(PAnsiChar(ipAddressStr)); //convert to IN_ADDR structure + sock :=socket(AF_INET, SOCK_STREAM, 0); //creates a socket + Result:=connect(sock,client,SizeOf(client))=0; //establishes a connection to a specified socket + finally + WSACleanup; + end; +end; + +function SendMessageToTCPServer(const aMessage: string; aPort: integer): boolean; +var + IdTCP: TIdTCPClient; +begin + Result := False; + try + IdTCP := TIdTCPClient.Create(nil); + try + IdTCP.Host := '127.0.0.1'; + IdTCP.Port := aPort; + IdTCP.ConnectTimeout := 3000; + IdTCP.Connect; + + if IdTCP.Connected then + begin + IdTCP.IOHandler.WriteLn(aMessage); + IdTCP.IOHandler.ReadTimeout := 500; + end; + + finally + IdTCP.Disconnect; + FreeAndNil(IdTCP); + end; + Result := True; + except + + end; +end; + +procedure WaitProcess(const aProcessInformation: TProcessInformation; aCheckIsAlive: boolean; aThreadId: TThreadID; const aPort: integer); +var + StringToSend: string; +begin + // loop every 10 ms + while WaitForSingleObject(aProcessInformation.hProcess, 10) > 0 do + begin + Application.ProcessMessages; + if aCheckIsAlive then + begin + StringToSend := Format('{"ThreadId":%d,"ProcessId":%d}', [aThreadId, aProcessInformation.dwProcessId]); + if not SendMessageToTCPServer(StringToSend, aPort) then + TerminateProcess(aProcessInformation.hProcess , 0); + end; + end; + CloseProcess(aProcessInformation); +end; + +procedure CloseProcess(const aProcessInformation: TProcessInformation); +begin + GlobalFree(aProcessInformation.hProcess); + GlobalFree(aProcessInformation.hThread); +end; + +function GetSystemInfo: string; +begin + Result := 'INFORMAÇÕES DO SISTEMA:'; + Result := Result + #13#10 + '---------------------------------------------------------------------------'; + Result := Result + #13#10 + 'Mac Address: ' + GetMacAddress; + Result := Result + #13#10 + 'Diretório do Windows: ' + GetWindowsDir; + Result := Result + #13#10 + 'Nome do Computador: ' + GetPcName; + Result := Result + #13#10 + 'Impressoras: ' + #13#10 + GetPrinters; + Result := Result + #13#10 + 'Versão do Windows: ' + GetWindowsVersion; + Result := Result + #13#10 + 'Idioma: ' + GetLanguage; + Result := Result + #13#10 + 'Estado do Scroll: ' + GetScrollState; + Result := Result + #13#10 + 'Resolução da Tela: ' + ScreenResolution; + Result := Result + #13#10 + 'Espaço Livre no C: ' + FreeDiskSpace('C'); + Result := Result + #13#10 + 'Horário do Windows: ' + TimeInWindows; + Result := Result + #13#10 + 'Estado de Energia: ' + GetPowerStatus; + Result := Result + #13#10 + 'Usuário: ' + GetUser; + Result := Result + #13#10 + 'Lista de Processos: ' + GetProcessList; + Result := Result + #13#10 + '---------------------------------------------------------------------------'; + //Result := GetSystemDecimal; +end; + +procedure setHabilitaComboSearch(cbo: TosComboSearch; enabled: boolean); +begin + if enabled then + begin + cbo.ReadOnly := false; + cbo.color := clWhite; + cbo.showButton := true; + end + else + begin + cbo.ReadOnly := true; + cbo.color := clBtnFace; + cbo.showButton := false; + end; + cbo.invalidate; +end; + +function LocalIp: string; +var + IPW: TIdIPWatch; +begin + Result := '127.0.0.1'; + + IpW := TIdIPWatch.Create(Application); + try + IpW.Active := True; + if IpW.LocalIP <> EmptyStr then + Result := FormatIP(IpW.LocalIP); + finally + if Assigned(IpW) then + FreeAndNil(IpW); + end; +end; + +function ValidaTravamento(const Aplicacao: string; var FTaskName: string; var FPid: PDWORD_PTR; + var FProcessa: Boolean; var FHWND: HWND; var iListOfProcess: Integer) : Boolean; +var + dwResult: PDWORD_PTR; + ValorRetorno: Longint; + AppHandle : THandle; +begin + Result := False; + dwResult := nil; + try + AppHandle:= UtilsUnitGui.GetTaskHandle(Aplicacao, FTaskName, FPid, FProcessa, FHWND, iListOfProcess); + try + if AppHandle <> 0 then + begin + ValorRetorno:= SendMessageTimeout(AppHandle, WM_NULL, 0, 0, + SMTO_ABORTIFHUNG OR SMTO_BLOCK, 1000, dwResult); + if ValorRetorno > 0 then + Result := True + else + Result := False; + end; + finally + if AppHandle > 0 then + CloseHandle(AppHandle); + end; + except + end; +end; + +function ProcessExists(exeFileName: string; var FTaskName: string; var FPid: PDWORD_PTR; + var FProcessa: Boolean; var FHWND: HWND; var iListOfProcess: Integer): Boolean; +var + ContinueLoop: BOOL; + FSnapshotHandle: THandle; + FProcessEntry32: TProcessEntry32; +begin + FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); + try + FProcessEntry32.dwSize := SizeOf(FProcessEntry32); + ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); + Result := False; + while Integer(ContinueLoop) <> 0 do + begin + if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = + UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) = + UpperCase(ExeFileName))) then + begin + Result := True; + ValidaTravamento(UpperCase(ExeFileName), FTaskName, FPid, FProcessa, FHWND, iListOfProcess); + end; + ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); + end; + finally + CloseHandle(FSnapshotHandle); + end; +end; + +procedure MakeRounded(Control: TWinControl); +var + R: TRect; + Rgn: HRGN; +begin + with Control do + begin + R := ClientRect; + rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 20, 20); + Perform(EM_GETRECT, 0, lParam(@r)); + InflateRect(r, - 10, - 10); + Perform(EM_SETRECTNP, 0, lParam(@r)); + SetWindowRgn(Handle, rgn, True); + Invalidate; + end; +end; + +function UnZip(ZipName: string; Destination: string): boolean; +var + UnZipper: TZipFile; +begin + UnZipper := TZipFile.Create(); + try + UnZipper.Open(ZipName, zmRead); + UnZipper.ExtractAll(Destination); + UnZipper.Close; + finally + FreeAndNil(UnZipper); + end; + Result := True; +end; + +end. + + diff --git a/Lib/delphi-php-serializer/README.md b/Lib/delphi-php-serializer/README.md new file mode 100644 index 0000000..d7df115 --- /dev/null +++ b/Lib/delphi-php-serializer/README.md @@ -0,0 +1,38 @@ +# delphi-php-serializer +Create serialized PHP structs with Delphi + +# What does this do? +It solves a problem I had some time ago. I wanted to build structs in Delphi/Object Pascal which could be deserialized on PHP side. It's nothing much, but maybe somebody out there has exactly this problem too, and saves a bit time. My pleasure. + +# Can you demonstrate? + +Sure. + + var + serializer : TPHPSerializer; + begin + serializer := TPHPSerializer.Create(); + serializer.Clear(); + + serializer.ArrayStart(Length(obj.configs)); + for sw := 0 to Length(obj.configs) - 1 do + begin + serializer.AddInt(sw); // array index! + serializer.CreateClass('EQUIP_LEVELUP_CONFIG_config_t', 3); + serializer.AddField('req_exp'); + serializer.AddInt(obj.configs[sw].req_exp); + serializer.AddField('addon_group'); + serializer.AddInt(obj.configs[sw].addon_group); + serializer.AddField('money_cost'); + serializer.AddInt(obj.configs[sw].money_cost); + serializer.CloseClass; + end; + serializer.CloseClass; // close array + +Result can then be retrieved by: + + serializer.GetFinalSWON(); + + You can then use this string with unserialize() PHP call, and like magic, have the object you described with delphi. + + Cheers. diff --git a/Lib/delphi-php-serializer/Repositorio Original.txt b/Lib/delphi-php-serializer/Repositorio Original.txt new file mode 100644 index 0000000..1643d50 --- /dev/null +++ b/Lib/delphi-php-serializer/Repositorio Original.txt @@ -0,0 +1 @@ +https://github.com/kingkellogg/delphi-php-serializar.git \ No newline at end of file diff --git a/Lib/delphi-php-serializer/swPHPSerializer.pas b/Lib/delphi-php-serializer/swPHPSerializer.pas new file mode 100644 index 0000000..9bfa0a0 --- /dev/null +++ b/Lib/delphi-php-serializer/swPHPSerializer.pas @@ -0,0 +1,133 @@ +unit swPHPSerializer; + +interface + +uses sysutils, math; + +type + TPHPSerializer = class + private const + _BRACKET_OPEN = '{'; + _BRACKET_CLOSE = '}'; + _DATA_DELIMITER = ';'; + + var + _result_string: string; + + public + constructor Create; + procedure Clear(dummy: boolean = true); + procedure CreateClass(class_name: string; num_class_members: integer); + procedure CloseClass; + procedure ArrayStart(array_len: integer); + procedure AddBoolean(b: boolean); + procedure AddInt(int: int64); + procedure AddFloat(f: double); + procedure AddString(str: string); + + procedure AddDepthLevel; + procedure CloseDepthLevel; + + Procedure AddField(field_name: string); + + procedure Add(b: boolean); overload; + procedure Add(int: integer); overload; + procedure Add(f: double); overload; + procedure Add(str: string); overload; + + function GetFinalSWON: string; + + end; + +implementation + +{ TswONBuilder } + +procedure TPHPSerializer.Add(int: integer); +begin + self.AddInt(int); +end; + +procedure TPHPSerializer.Add(b: boolean); +begin + self.AddBoolean(b); +end; + +procedure TPHPSerializer.Add(str: string); +begin + self.AddString(str); +end; + +procedure TPHPSerializer.Add(f: double); +begin + self.AddFloat(f); +end; + +procedure TPHPSerializer.AddBoolean(b: boolean); +begin + self._result_string := self._result_string + 'b:' + BoolToStr(b, false) + self._DATA_DELIMITER; +end; + +procedure TPHPSerializer.AddDepthLevel; +begin + +end; + +procedure TPHPSerializer.AddField(field_name: string); +begin + self._result_string := self._result_string + 's:' + inttostr(field_name.Length) + ':"' + field_name + '"' + self._DATA_DELIMITER; +end; + +procedure TPHPSerializer.AddFloat(f: double); +begin + self._result_string := self._result_string + 'd:' + floattostr(RoundTo(f, -4)) + self._DATA_DELIMITER; +end; + +procedure TPHPSerializer.AddInt(int: int64); +begin + self._result_string := self._result_string + 'i:' + inttostr(int) + self._DATA_DELIMITER; +end; + +procedure TPHPSerializer.AddString(str: string); +begin + self._result_string := self._result_string + 's:' + inttostr(str.Length) + ':"' + str + '"' + self._DATA_DELIMITER; +end; + +procedure TPHPSerializer.ArrayStart(array_len: integer); +begin + self._result_string := self._result_string + 'a:' + inttostr(array_len) + ':{'; +end; + +procedure TPHPSerializer.Clear(dummy: boolean = true); +begin + self._result_string := ''; +end; + +procedure TPHPSerializer.CloseClass; +begin + // force close remaining brackets + self._result_string := self._result_string + self._BRACKET_CLOSE; +end; + +procedure TPHPSerializer.CloseDepthLevel; +begin + +end; + +constructor TPHPSerializer.Create; +begin + self.Clear; +end; + +procedure TPHPSerializer.CreateClass(class_name: string; num_class_members: integer); +begin + self._result_string := self._result_string + 'O:' + inttostr(Length(class_name)) + ':"' + class_name + '":' + inttostr(num_class_members) + ':{'; +end; + +function TPHPSerializer.GetFinalSWON: string; +begin + + Result := self._result_string; +end; + +end. diff --git a/Lib/osCalculaFormulas.pas b/Lib/osCalculaFormulas.pas index ee6fc8f..0cd70da 100644 --- a/Lib/osCalculaFormulas.pas +++ b/Lib/osCalculaFormulas.pas @@ -169,7 +169,7 @@ function TosCalculaFormulas.Inicializa : boolean; while Index < Count do begin // atribui expressao para que o parser processe-a - Parser.Expressao := TosFormula(Elementos[Index]).Formula; + Parser.Expressao := AnsiString(String(TosFormula(Elementos[Index]).Formula)); if Parser.Expressao <> '' then begin // compila a expressao @@ -273,7 +273,7 @@ function TosFormula.NumErrosExpr: Integer; function TosFormula.Processa(Dependencias: TListaElementos): Boolean; begin - FParser.Expressao := FFormula; + FParser.Expressao := AnsiString(String(FFormula)); if not(FParser.Compile) then FListaErrosExpr.Assign(FParser.ListaErros); @@ -309,7 +309,7 @@ function TosFormulaCalc.Processa(Dependencias: TListaElementos): Boolean; VariavelAdj : TosFormulaVariavel; begin // avaliacao da expressao - FParser.Expressao := FFormula; + FParser.Expressao := AnsiString(String(FFormula)); if not(FParser.Compile) then FListaErrosExpr.Assign(FParser.ListaErros); diff --git a/Lib/osErrorHandler.pas b/Lib/osErrorHandler.pas index 649665a..9657a15 100644 --- a/Lib/osErrorHandler.pas +++ b/Lib/osErrorHandler.pas @@ -4,7 +4,7 @@ interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, StdCtrls, db, osCIC, richedit, RegExpr; + Dialogs, StdCtrls, db, osCIC, richedit, RegExpr, System.Types; type TErrorType = (etError, etCritical, etWarning); @@ -312,7 +312,7 @@ function TosErrorHandlerForm.IsFullStr(PField: TField): boolean; function TosErrorHandlerForm.IsUF(PField: TField): boolean; const - SiglasValidas = 'RS SC PR SP MS MT RJ ES MG GO BA PE SE AL PI MA RN CE PB PA AM AC RO RR AP TO DF'; + SiglasValidas = ' RS SC PR SP MS MT RJ ES MG GO BA PE SE AL PI MA RN CE PB PA AM AC RO RR AP TO DF '; var SiglaUF : string; begin @@ -320,12 +320,12 @@ function TosErrorHandlerForm.IsUF(PField: TField): boolean; if IsEmpty(SiglaUF) then Result := False else - Result := (Pos(SiglaUF, SiglasValidas) > 0); + Result := (Pos(' '+UpperCase(SiglaUF)+' ', SiglasValidas) > 0); end; function TosErrorHandlerForm.IsEmail(PField : TField) : boolean; begin - Result := ExecRegExpr('^[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+\.[A-Za-z]{2,4}(\.[A-Za-z]{2,4})*$', + Result := ExecRegExpr('^[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+\.[A-Za-z0-9-]{2,}(\.[A-Za-z0-9-]{2,})*$', PField.AsString); end; @@ -364,8 +364,11 @@ procedure TosErrorHandlerForm.WarningEmpty(PField: TField; PFieldName: string); procedure TosErrorHandlerForm.FormShow(Sender: TObject); begin - Self.Left := Application.MainForm.ClientOrigin.X + Application.MainForm.ClientWidth - Self.Width - 18; - Self.Top := Application.MainForm.ClientOrigin.Y + 54; + if Application.MainForm <> nil then + begin + Self.Left := Application.MainForm.ClientOrigin.X + Application.MainForm.ClientWidth - Self.Width - 18; + Self.Top := Application.MainForm.ClientOrigin.Y + 54; + end; end; diff --git a/Lib/osFuncoesParser.pas b/Lib/osFuncoesParser.pas index 700056a..28e59ff 100644 --- a/Lib/osFuncoesParser.pas +++ b/Lib/osFuncoesParser.pas @@ -20,6 +20,11 @@ function round(Parametros: TList): Double; forward; function masc(Parametros: TList): string; forward; function equal(Parametros: TList): Double; forward; function trimstr(Parametros: TList): string; forward; +function maiusculo(Parametros: TList): string; forward; +function minusculo(Parametros: TList): string; forward; +function inicial(Parametros: TList): string; forward; +function logaritmo(Parametros: TList): double; forward; + implementation @@ -133,8 +138,12 @@ function masc(Parametros: TList): string; end; function equal(Parametros: TList): Double; +var + s1, s2: string; begin - if (string(PChar(Parametros.Items[1])) = string(PChar(Parametros.Items[0]))) then + s1 := PChar(Parametros.Items[1]); + s2 := PChar(Parametros.Items[0]); + if (AnsiUpperCase(s1) = AnsiUpperCase(s2)) then Result := 1 else Result := 2; @@ -145,4 +154,27 @@ function trimstr(Parametros: TList): string; Result := Trim(PChar(Parametros.Items[0])); end; +function maiusculo(Parametros: TList): string; +begin + Result := AnsiUpperCase(PChar(Parametros.Items[0])); +end; + +function minusculo(Parametros: TList): string; +begin + Result := AnsiLowerCase(PChar(Parametros.Items[0])); +end; + +function inicial(Parametros: TList): string; +var + texto: string; +begin + texto := AnsiUpperCase(PChar(Parametros.Items[0])); + Result := AnsiUpperCase(Copy(texto,1,1))+AnsiLowerCase(Copy(texto,2, Length(texto))); +end; + +function logaritmo(Parametros: TList): double; +begin + Result := Math.LogN(double(Parametros.Items[0]^), double(Parametros.Items[1]^)); +end; + end. diff --git a/Lib/osLogin.pas b/Lib/osLogin.pas index c8a3526..1f26167 100644 --- a/Lib/osLogin.pas +++ b/Lib/osLogin.pas @@ -4,7 +4,7 @@ interface uses Windows, SysUtils, osSQLDataSet, acCustomSQLMainDataUn, Controls, Dialogs, - osCustomLoginFormUn; + osCustomLoginFormUn, System.UITypes; type TLoginUsuario = class @@ -14,9 +14,14 @@ TLoginUsuario = class FIDUsuario: integer; FStatus: string; FApelido: string; + FUserDataSenha: TDateTime; + FUserSenha: string; + function GetSystemUserName: string; function isGrupo(nomeColuna: string; caption: string): boolean; + function SenhaExpirada: Boolean; public + constructor create; property IDUsuario: integer read FIDUsuario; property Apelido: string read FApelido; property Nome: string read FNome; @@ -28,12 +33,15 @@ TLoginUsuario = class procedure Logout; function isTesoureiro: boolean; function isCaixa: boolean; - constructor create; + property UserName: string read FNome; + property UserDataSenha: TDateTime read FUserDataSenha; + property UserSenha: String read FUserSenha; + procedure ValidaSenhaExpirada; end; implementation -uses DB, osMD5; +uses DB, osMD5, StatusUnit, osSQLQuery, ParametroSistemaDataUn, SQLMainData, LogDataUn, LMLogCodes, MudarSenhaFormUn; constructor TLoginUsuario.create; begin @@ -151,7 +159,7 @@ function TLoginUsuario.Login(caption: string; and (mrCancel <> LoginForm.ShowModal) do begin query.SQLConnection := acCustomSQLMainData.SQLConnection; - query.CommandText := 'SELECT idusuario, apelido, nome, senha, status FROM USUARIO' + + query.CommandText := 'SELECT idusuario, apelido, nome, senha, status, DataSenha FROM USUARIO' + ' WHERE lower(apelido) = ' + quotedStr(LowerCase(LoginForm.UsernameEdit.Text)); query.Open; try @@ -168,13 +176,21 @@ function TLoginUsuario.Login(caption: string; LoginForm.FocusedControl := LoginForm.PasswordEdit; Inc(ErrorCount); end + else if query.FieldByName('Status').AsString <> stuAtivo then + begin + MessageDlg('Usuário Inativo.', mtError, [mbOK], 0); + LoginForm.FocusedControl := LoginForm.UsernameEdit; + end else begin FIDUsuario := query.fieldByName('IDUsuario').AsInteger; FApelido := query.fieldByName('Apelido').AsString; FNome := query.fieldByName('Nome').AsString; FStatus := query.fieldByName('Status').AsString; + FUserDataSenha := query.FieldByName('DataSenha').AsDateTime; + FUserSenha := query.FieldByName('Senha').AsString; LoginCorrect := True; + self.ValidaSenhaExpirada; end; finally query.Close; @@ -198,5 +214,70 @@ procedure TLoginUsuario.Logout; FIDUsuario := -1; end; +procedure TLoginUsuario.ValidaSenhaExpirada; +var + Oldpassword : string; + Newpassword : string; + cancelouTrocaSenha: Boolean; + msglog: string; + qryUsuario: TosSQLQuery; +begin + if SenhaExpirada then + begin + cancelouTrocaSenha := False; + if MessageDlg('Sua senha expirou e precisa ser alterada.'+#13+ + 'Deseja trocar a senha agora?', mtConfirmation, [mbYes, mbNo], 0) = mrNo then + begin + cancelouTrocaSenha := True; + end + else + begin + Oldpassword := FUserSenha; + Newpassword := TMudarSenhaForm.Execute(FUserSenha); + + if Newpassword = Oldpassword then + cancelouTrocaSenha := True + else + begin + qryUsuario := MainData.GetQuery; + try + qryUsuario.SQL.Text := 'update usuario set senha = :senha, datasenha = :datasenha where idusuario = :idusuario'; + qryUsuario.ParamByName('senha').AsString := Newpassword; + qryUsuario.ParamByName('datasenha').AsDate := MainData.GetServerDate; + qryUsuario.ParamByName('idusuario').AsInteger := FIDUsuario; + qryUsuario.ExecSQL; + finally + FreeAndNil(qryUsuario); + end; + end; + end; + if cancelouTrocaSenha then + begin + msglog := 'Usuario ' + FNome + ' cancelou a troca da senha expirada.'; + LogData.Logar(CL_ParametrosSistema, SCL_ParametroSistemaSenha, msglog); + end; + end; +end; + +function TLoginUsuario.SenhaExpirada: Boolean; +var + query: TosSQLDataSet; +begin + Result := False; + query := TosSQLDataSet.Create(nil); + try + query.SQLConnection := acCustomSQLMainData.SQLConnection; + query.commandText := 'SELECT expirosenha from parametrosistema'; + query.Open; + + if query.FieldByName('ExpiroSenha').AsInteger <> 0 then + Result := (FUserDataSenha + query.FieldByName('ExpiroSenha').AsInteger) < MainData.GetServerDatetime; + + finally + FreeAndNil(query); + end; +end; + + end. - \ No newline at end of file + diff --git a/Lib/osMaquina.pas b/Lib/osMaquina.pas index bbbc87d..969ea5c 100644 --- a/Lib/osMaquina.pas +++ b/Lib/osMaquina.pas @@ -58,7 +58,7 @@ TosMaquina = class FVariaveis: TListLookUp; // Listas de variaveis e funcoes definidas FFuncoes: TListLookUp; FResultado: Double; // Resultado do processamento - FResultadoStr: string; // Resultado do processamento + FResultadoStr: String; // Resultado do processamento FnLinhaProc: Integer; // Linha atual sendo processada FnNumArg: Integer; // Linha de inicio de leitura de argumento FListaErros: TListErro; // Lista de Erros ocorridos @@ -89,7 +89,7 @@ TosMaquina = class // propriedades property Resultado: Double read FResultado; - property ResultadoStr: string read FResultadoStr; + property ResultadoStr: String read FResultadoStr; property Parser: TosParser read FParser write FParser; property Variavel[NomeVar: String]: Double read LeVariavel write pSetaVariavel; property ListaVariavel: TListLookup read FVariaveis; @@ -176,7 +176,11 @@ constructor TosMaquina.Create; FFuncoes.Add(TFuncaoMaquina.Create('ROUND', 1, round)); FFuncoes.Add(TFuncaoMaquina.Create('MASC', 2, masc)); FFuncoes.Add(TFuncaoMaquina.Create('EQUAL', 2, equal)); - FFuncoes.Add(TFuncaoMaquina.Create('TRIM', 1, trimstr)); + FFuncoes.Add(TFuncaoMaquina.Create('TRIM', 1, trimstr)); + FFuncoes.Add(TFuncaoMaquina.Create('MAIUSCULO', 1, maiusculo)); + FFuncoes.Add(TFuncaoMaquina.Create('MINUSCULO', 1, minusculo)); + FFuncoes.Add(TFuncaoMaquina.Create('INICIAL', 1, inicial)); + FFuncoes.Add(TFuncaoMaquina.Create('LOGN', 2, logaritmo)); end; destructor TosMaquina.Destroy; @@ -339,8 +343,6 @@ function TosMaquina.Exec: Boolean; procedure TosMaquina.ProcessaInstrucao(bytecode: Integer; Parametro: String); var ValorVar: ^Double; - ValorString: PChar; - stringVar: string; doubleAux: Double; Variavel: TVariavelMaquina; begin @@ -387,9 +389,8 @@ procedure TosMaquina.ProcessaInstrucao(bytecode: Integer; Parametro: String); begin if FStrings = nil then FStrings := TStringList.Create; - ValorString := PChar(FStrings.Strings[ - FStrings.Add(StringReplace(Parametro,'"','',[rfReplaceAll]))]); - FpilhaExec.push(ValorString); + FpilhaExec.push(PChar(FStrings.Strings[ + FStrings.Add(StringReplace(Parametro,'"','',[rfReplaceAll]))])); end; ord(tiRValue): // variaveis @@ -419,16 +420,19 @@ procedure TosMaquina.ProcessaInstrucao(bytecode: Integer; Parametro: String); end else begin - ValorString := PChar(string(Variavel.Valor)); - FpilhaExec.push(ValorString); + if FStrings = nil then + FStrings := TStringList.Create; + FpilhaExec.push(PChar(FStrings.Strings[ + FStrings.Add(Variavel.Valor)])); end; end else begin if FStrings = nil then FStrings := TStringList.Create; - ValorString := PChar(FStrings.Strings[FStrings.Add(' ')]); - FpilhaExec.push(ValorString); + Variavel.Valor := ''; + FpilhaExec.push(PChar(FStrings.Strings[ + FStrings.Add(Variavel.Valor)])); end; end; end; diff --git a/Lib/osParser.pas b/Lib/osParser.pas index ddade48..12ca697 100644 --- a/Lib/osParser.pas +++ b/Lib/osParser.pas @@ -2,7 +2,7 @@ interface -uses osLex, Classes, SysUtils, osParserErrorHand; +uses osLex, Classes, SysUtils, osParserErrorHand, System.Types; type // representa uma pilha generica @@ -201,12 +201,12 @@ constructor TosParser.Create; procedure TosParser.NovaExpressao(Expr: AnsiString); begin FCompilado := False; - FLex.Expressao := AnsiUpperCase(Expr); + FLex.Expressao := AnsiUpperCase(String(Expr)); end; function TosParser.ObtemExpressao: AnsiString; begin - Result := FLex.Expressao; + Result := AnsiString(FLex.Expressao); end; { Confere token atual e le o proximo token } @@ -535,49 +535,49 @@ procedure TExprPrograma.Clear; procedure TExprPrograma.emit_ConstBool(Num: String); begin - FFonte := FFonte + 'constbool:' + Num + #13#10; + FFonte := FFonte + 'constbool:' + AnsiString(Num) + #13#10; inc(FnLinhas); end; procedure TExprPrograma.emit_ConstNum(Num: String); begin - FFonte := FFonte + 'constnum:' + Num + #13#10; + FFonte := FFonte + 'constnum:' + AnsiString(Num) + #13#10; inc(FnLinhas); end; procedure TExprPrograma.emit_Func(NomeFunc: String); begin - FFonte := FFonte + 'func:' + Nomefunc + #13#10; + FFonte := FFonte + 'func:' + AnsiString(Nomefunc) + #13#10; inc(FnLinhas); end; procedure TExprPrograma.emit_FuncArg(NumArgumentos: Integer); begin - FFonte := FFonte + 'arg:' + IntToStr(NumArgumentos) + #13#10; + FFonte := FFonte + 'arg:' + AnsiString(IntToStr(NumArgumentos)) + #13#10; inc(FnLinhas); end; procedure TExprPrograma.emit_LValor(NomeVariavel: String); begin - FFonte := FFonte + 'lvalue:' + NomeVariavel + #13#10; + FFonte := FFonte + 'lvalue:' + AnsiString(NomeVariavel) + #13#10; inc(FnLinhas); end; procedure TExprPrograma.emit_Operador(Operador: String); begin - FFonte := FFonte + 'op:' + Operador + #13#10; + FFonte := FFonte + 'op:' + AnsiString(Operador) + #13#10; inc(FnLinhas); end; procedure TExprPrograma.emit_OperadorUnario(Operador: String); begin - FFonte := FFonte + 'opun:' + Operador + #13#10; + FFonte := FFonte + 'opun:' + AnsiString(Operador) + #13#10; inc(FnLinhas); end; procedure TExprPrograma.emit_RValor(NomeVariavel: String); begin - FFonte := FFonte + 'rvalue:' + NomeVariavel + #13#10; + FFonte := FFonte + 'rvalue:' + AnsiString(NomeVariavel) + #13#10; inc(FnLinhas); end; @@ -589,23 +589,23 @@ function TExprPrograma.LeLinha(Index: Integer): String; begin i := 0; PosI := 1; - PosF := AnsiPos(#13#10, FFonte);; + PosF := AnsiPos(#13#10, String(FFonte));; Tamanho := Length(FFonte); while i < Index do begin PosI := PosF + 2; - PosF := PosI + AnsiPos(#13#10, Copy(FFonte, PosI, Tamanho - PosI + 1)) - 1; + PosF := PosI + AnsiPos(#13#10, Copy(String(FFonte), PosI, Tamanho - PosI + 1)) - 1; inc(i); end; - Result := Copy(FFonte, PosI, PosF-PosI); + Result := Copy(String(FFonte), PosI, PosF-PosI); end; procedure TExprPrograma.emit_ConstString(str: String); begin - FFonte := FFonte + 'conststring:' + str + #13#10; + FFonte := FFonte + 'conststring:' + AnsiString(str) + #13#10; inc(FnLinhas); end; diff --git a/Lib/osParserErrorHand.pas b/Lib/osParserErrorHand.pas index 5ce4ddd..1ad456a 100644 --- a/Lib/osParserErrorHand.pas +++ b/Lib/osParserErrorHand.pas @@ -37,7 +37,7 @@ constructor TNodoErro.Create(pClasse: TClasseErr; pIDErro: Integer; begin FClasse := pClasse; FIDErro := pIDErro; - FTexto := Format(pTexto, ListaDeComplementos); + FTexto := AnsiString(Format(String(pTexto), ListaDeComplementos)); end; { TListErro } diff --git a/Lib/osReportUtils.pas b/Lib/osReportUtils.pas index a851851..bbab090 100644 --- a/Lib/osReportUtils.pas +++ b/Lib/osReportUtils.pas @@ -7,7 +7,7 @@ interface daQueryDataView, ppTypes,daIDE, daDBExpress, ppCTDsgn, raIDE, myChkBox, ppModule, FMTBcd, osCustomDataSetProvider, SqlExpr, osSQLDataSetProvider, daSQl, osSQLQuery, osComboFilter, ppDBPipe, osClientDataSet, - acReportContainer, Forms; + acReportContainer, Forms, osCustomMainFrm, acCustomReportUn; type TIdade = class private @@ -19,7 +19,7 @@ type TIdade = class function getMeses: integer; function getString: string; public - constructor Create(dias: integer); + constructor Create(dias: integer; referencia: TDateTime = 0); property dias: integer read getDias; property anos: integer read getAnos; property meses: integer read getMeses; @@ -28,10 +28,11 @@ type TIdade = class end; - function getIdadeDias(idade: string): integer; + function getIdadeDias(idade: string; conn: TSQLConnection = nil): integer; function getTemplateByName(name: string; stream: TMemoryStream): boolean; - function getTemplateByID(id: integer; stream: TMemoryStream): boolean; + function getTemplateByID(id: integer; stream: TMemoryStream; var config: TConfigImpressao): boolean; function getTemplateIDByName(name: string): integer; + function getTemplateLaudoRascunho(name: string; stream: TMemoryStream; var config: TConfigImpressao): boolean; procedure replaceReportSQL(report: TppReport; template: TMemoryStream; strSQL: String); procedure replaceReportSQLAddParam(report: TppReport; template: TMemoryStream; @@ -91,6 +92,77 @@ function getTemplateByName(name: string; stream: TMemoryStream): boolean; end; end; + +function getTemplateLaudoRascunho(name: string; stream: TMemoryStream; var config: TConfigImpressao): boolean; +var + query: TosSQLQuery; + vIdRelatorio: Integer; +begin + name := UpperCase(Name); + Result := false; + query := TosSQLQuery.Create(nil); + try + query.SQLConnection := acCustomSQLMainData.SQLConnectionMeta; + query.CommandText := ' SELECT ' + + ' I.template, '+ + ' I.ITEM_ID, '+ + ' r.IdRelatorio '+ + ' FROM ' + + ' RB_ITEM I '+ + ' join relatorio r on r.item_id = I.item_id '+ + ' join tipolaudo tp on tp.idrelatoriolaudo = r.idrelatorio '+ + ' WHERE tp.rascunho = ''S'' '; + query.open; + if query.fields[0].AsString <> '' then + begin + TBLOBField(query.fields[0]).SaveToStream(stream); + TacReportContainer(Application.MainForm.FindComponent('FReportDepot')). + addReport(query.fields[1].AsInteger, name, TBLOBField(query.fields[0]).AsString); + Result := true; + end; + + if Result then + begin + vIdRelatorio := query.FieldByName('IdRelatorio').AsInteger; + query.Close; + query.SQL.Text := ' select r.margemsuperior, ' + + ' r.margeminferior, ' + + ' r.margemesquerda, ' + + ' r.margemdireita, ' + + ' r.alturapapel, ' + + ' r.largurapapel, ' + + ' r.orientation, ' + + ' r.classeimpressora, ' + + ' r.tiposaida, ' + + ' rb.item_id from relatorio r'+ + ' join rb_item rb on r.item_id = rb.item_id'+ + ' where r.idrelatorio = '+IntToStr(vIdRelatorio); + query.Open; + if not query.IsEmpty then + begin + if not query.fieldByName('orientation').IsNull then + config.orientation := query.fieldByName('orientation').AsInteger; + if not query.fieldByName('larguraPapel').IsNull then + config.larguraPapel := query.fieldByName('larguraPapel').AsInteger; + if not query.fieldByName('alturaPapel').IsNull then + config.alturaPapel := query.fieldByName('alturaPapel').AsInteger; + if not query.fieldByName('margemSuperior').IsNull then + config.margemSuperior := query.fieldByName('margemSuperior').AsInteger; + if not query.fieldByName('margemInferior').IsNull then + config.margemInferior := query.fieldByName('margemInferior').AsInteger; + if not query.fieldByName('margemEsquerda').IsNull then + config.margemEsquerda := query.fieldByName('margemEsquerda').AsInteger; + if not query.fieldByName('margemDireita').IsNull then + config.margemDireita := query.fieldByName('margemDireita').AsInteger; + // if not query.fieldByName('tipoSaida').IsNull then + // config.tipoSaida := query.fieldByName('tipoSaida').AsString; + end; + end; + finally + FreeAndNil(query); + end; +end; + function getTemplateIDByName(name: string): integer; var query: TosSQLDataset; @@ -125,44 +197,67 @@ function getTemplateIDByName(name: string): integer; end; -function getTemplateById(id: integer; stream: TMemoryStream): boolean; +function getTemplateById(id: integer; stream: TMemoryStream; var config: TConfigImpressao): boolean; var query: TosSQLDataset; report: string; ss: TStringStream; + ComponenteRelatorio: TacReportContainer; begin Result := false; - report := TacReportContainer(Application.MainForm.FindComponent('FReportDepot')). - findReportById(id); - if Length(report) > 0 then - begin - ss := TStringStream.Create(report); - stream.LoadFromStream(ss); - Result := True; - end - else - begin - query := TosSQLDataSet.Create(nil); + query := TosSQLDataSet.Create(nil); + try + query.SQLConnection := acCustomSQLMainData.SQLConnection; + query.CommandText := ' SELECT ' + + ' template, '+ + ' name '+ + ' FROM ' + + ' RB_ITEM '+ + ' WHERE ' + + ' ITEM_ID = ' + intToStr(id); + query.Open; + if query.RecordCount>0 then + config.NomeRelatorio := query.FieldByName('name').AsString; + + if Application.MainForm <> nil then + report := TacReportContainer(Application.MainForm.FindComponent('FReportDepot')).findReportById(id) + else + begin + //Dessa forma o agendador pode ter acesso ao componente de relatório + ComponenteRelatorio := TacReportContainer.Create(nil); + report := ComponenteRelatorio.findReportById(id); + end; + try - query.SQLConnection := acCustomSQLMainData.SQLConnection; - query.CommandText := ' SELECT ' + - ' template, '+ - ' name '+ - ' FROM ' + - ' RB_ITEM '+ - ' WHERE ' + - ' ITEM_ID = ' + intToStr(id); - query.Open; - if query.RecordCount>0 then + if Length(report) > 0 then begin - TBLOBField(query.fields[0]).SaveToStream(stream); - TacReportContainer(Application.MainForm.FindComponent('FReportDepot')). - addReport(id, query.fields[1].AsString, query.fields[0].AsString); - Result := True; + try + ss := TStringStream.Create(report); + stream.LoadFromStream(ss); + Result := True; + finally + FreeAndNil(ss); + end; + end + else + begin + if query.RecordCount>0 then + begin + TBLOBField(query.fields[0]).SaveToStream(stream); + if Application.MainForm <> nil then + TacReportContainer(Application.MainForm.FindComponent('FReportDepot')).addReport(id, query.fields[1].AsString, query.fields[0].AsString) + else + ComponenteRelatorio.addReport(id, query.fields[1].AsString, query.fields[0].AsString); + config.NomeRelatorio := query.FieldByName('name').AsString; + Result := True; + end; end; finally - FreeAndNil(query); + if Application.MainForm = nil then + FreeAndNil(ComponenteRelatorio); end; + finally + FreeAndNil(query); end; end; @@ -386,22 +481,23 @@ function ConvertMask(mask: string): string; { TIdade } -constructor TIdade.Create(dias: integer); +constructor TIdade.Create(dias: integer; referencia: TDateTime = 0); begin Fdias := dias; - dataReferencia := acCustomSQLMainData.GetServerDate; + if referencia = 0 then + dataReferencia := acCustomSQLMainData.GetServerDate + else + dataReferencia := referencia end; function TIdade.getAnos: integer; var dia, mes, ano: word; diaAtual, mesAtual, anoAtual: word; - dataFinal: TDateTime; numAnos: integer; begin DecodeDate(dataReferencia, anoAtual, mesAtual, diaAtual); DecodeDate(dataReferencia-Fdias, ano, mes, dia); - dataFinal := dataReferencia; //calcular o número de anos que a pessoa possui numAnos := anoAtual - ano; @@ -418,12 +514,10 @@ function TIdade.getMeses: integer; var dia, mes, ano: word; diaAtual, mesAtual, anoAtual: word; - dataFinal: TDateTime; numMeses: integer; begin DecodeDate(dataReferencia, anoAtual, mesAtual, diaAtual); DecodeDate(dataReferencia-Fdias, ano, mes, dia); - dataFinal := dataReferencia; //calcular o número de meses que a pessoa possui numMeses := getAnos*12; @@ -448,80 +542,95 @@ function TIdade.getDias: integer; function TIdade.getString: string; var - numDias, numMeses, difMeses, numAnos: integer; - dia, mes, ano: word; - diaAtual, mesAtual, anoAtual: word; - dataNascimento, dataCalculo1, dataCalculo2: TDateTime; - difDias: integer; - iTemp: integer; - strMes: string; + mes, mesano: word; + ano, ano2: Integer; + dataNascimento: TDateTime; + Total_dias: Real; begin - numAnos := Fdias div 365; - if (Fdias mod 365) >= 360 then - difMeses := 11 - else - difMeses := (Fdias mod 365) div 30; - numDias := (Fdias mod 365) mod 30; - if Fdias 2 then + Inc(Ano2); + + while Total_dias >= DaysInAYear(Ano2) do begin - result := inttoStr(numDias) + ' dia'; - if numDias>1 then - result := result+'s'; + Total_dias := Total_dias - DaysInAYear(Ano2); + Ano := Ano + 1; + Ano2 := Ano2 + 1; end; - if (Fdias>=limiarDias) AND (Fdias 28 do begin - if difMeses>1 then - result := intToStr(difMeses) + ' meses' - else - if difMeses>0 then - result := intToStr(difMeses) + ' mês'; - if numDias>0 then - begin - if difMeses>0 then - result := result + ' e '; - if numDias>1 then - result := result + IntToStr(numDias) + ' dias' + if Total_dias >= DaysInAMonth(Ano, Mes) then + begin + + Total_dias := Total_dias - DaysInAMonth(Ano, mesano); + Mes := Mes + 1; + mesano:= mesano + 1; + if mesano > 12 then + mesano:= 1; + end else - result := result + IntToStr(numDias) + ' dia'; - end; + break; end; - if (Fdias>=limiarMeses) AND (Fdias 0 then begin - if numAnos > 1 then - result := IntToStr(numAnos) + ' anos' + result:= IntToStr(Ano); + if ano > 1 then + result:= result + ' anos ' else - result := IntToStr(numAnos) + ' ano'; - if difMeses>0 then - if difMeses>1 then - result := result + ' e ' + IntToStr(difMeses) + ' meses' - else - result := result + ' e ' + IntToStr(difMeses) + ' mês'; + result:= result + ' ano '; end; - if Fdias>=limiarAnos then + if (Mes > 0) then begin - if numAnos>1 then - result := inttoStr(numAnos) + ' anos' + if Ano > 0 then + Result:= Result + 'e '; + result:= Result + IntToStr(Mes); + if Mes > 1 then + result:= result + ' meses ' else - result := inttoStr(numAnos) + ' ano'; + result:= result + ' mês '; end; - + + if (Total_dias > 0) and (Ano < 1) then + begin + if (Ano > 0) or (Mes > 0) then + Result:= Result + 'e '; + result:= Result + FloatToStr(Total_dias); + if Total_dias > 1 then + result:= result + ' dias ' + else + result:= result + ' dia '; + end + else if (Total_dias = 0) and (meses = 12) and (ano = 0) then //recem nascido + result:= '0 dia'; end; -function getIdadeDias(idade: string): integer; +function getIdadeDias(idade: string; conn: TSQLConnection = nil): integer; var tipoIdade: String; - original, fatorMult: integer; + original: integer; + data: TDateTime; begin + result := 0; idade := trim(idade); tipoIdade := idade[length(idade)]; - fatorMult := 1; + original := StrToInt(copy(idade, 1, length(idade)-1)); + data := acCustomSQLMainData.GetServerDate(conn); case tipoIdade[1] of - 'd': fatorMult := 1; - 'm': fatorMult := 30; - 'a': fatorMult := 360; + 'd': result := DaysBetween(data, IncDay(data, original * -1)); + 'm': result := DaysBetween(data, INCMONTH(data, original * -1)); + 'a': result := DaysBetween(data, IncYear(data, original * -1)); end; - original := StrToInt(copy(idade, 1, length(idade)-1)); - result := original * fatorMult; end; procedure replaceReportSQLAddParam(report: TppReport; template: TMemoryStream; @@ -587,21 +696,13 @@ procedure replaceReportSQLAddParam(report: TppReport; template: TMemoryStream; begin try item := TStringList.Create; - item.Delimiter := '.'; + item.Delimiter := ' '; item.DelimitedText := criterios.Strings[y]; - ord := TdaField.Create(nil); + ord := aSQL.GetFieldForSQLFieldName(item.Strings[0]).Clone(nil); ord.ChildType := 2; - ord.Alias := item.Strings[1]; - ord.FieldAlias := item.Strings[1]; - ord.FieldName := item.Strings[1]; - ord.SQLFieldName := item.Strings[1]; - ord.TableAlias := nomePipeline; - ord.TableSQLAlias := item.Strings[0]; - - // na migração para o XE o comportamento da string list pode mudar - // atualmente independente do caracter de quebra o espaço tbm é quebrado - if (item.Count = 3) and (UpperCase(item.Strings[2]) = 'DESC') then + + if (item.Count = 2) and (UpperCase(item.Strings[1]) = 'DESC') then aSQL.AddOrderByField(ord,False) else aSQL.AddOrderByField(ord,True); @@ -615,6 +716,8 @@ procedure replaceReportSQLAddParam(report: TppReport; template: TMemoryStream; end; end; end; + if osCustomMainForm.ShowQueryAction.Checked then + ShowMessage(aSQL.MagicSQLText.Text); end; end; end; diff --git a/Lib/osShellAPI.pas b/Lib/osShellAPI.pas index ea06d1f..bea6bad 100644 --- a/Lib/osShellAPI.pas +++ b/Lib/osShellAPI.pas @@ -92,6 +92,7 @@ function VersionInfoProductVersion(p_exeName : String) : String; function VersionInfoComments(p_exeName : String) : String; function ExecuteWait(const p_commandLine : string; const p_commandShow: Word) : integer; +function ExecuteWaitTime(const p_commandLine : string; const p_commandShow: Word; const timeout: DWORD; var ProcessInfo: TProcessInformation) : integer; { Executa uma aplicação e espera até que ela termine Retorna: Codigo de Erro ou o ExitCode retornado pela aplicação executada } @@ -345,7 +346,7 @@ function ShShowMessage(Mensagem : String; msStyle : TShMessageStyle) : boolean; s : String; Flags : LongInt; begin - + Flags := 0; s := Application.ExeName; if Application.Title <> '' then s := Application.Title; @@ -450,6 +451,8 @@ function ExecuteWait(const p_commandLine : string; const p_commandShow: Word) : bRet : boolean; begin StrPCopy(pCommandLine, p_commandLine); + hAppThread := 0; + hAppProcess := 0; TRY { Prepare StartupInfo structure } FillChar(StartupInfo, SizeOf(StartupInfo), #0); @@ -503,6 +506,66 @@ function ExecuteWait(const p_commandLine : string; const p_commandShow: Word) : Result := dwExitCode; end; +function ExecuteWaitTime(const p_commandLine : string; const p_commandShow: Word; const timeout: DWORD; var ProcessInfo: TProcessInformation) : integer; +var + pCommandLine : array[0..MAX_PATH] of char; + StartupInfo : TStartupInfo; + hAppProcess, hAppThread : THandle; + dwExitCode : DWORD; + bRet : boolean; +begin + StrPCopy(pCommandLine, p_commandLine); + hAppThread := 0; + hAppProcess := 0; +TRY +{ Prepare StartupInfo structure } + FillChar(StartupInfo, SizeOf(StartupInfo), #0); + StartupInfo.cb := SizeOf(StartupInfo); + StartupInfo.dwFlags := STARTF_USESHOWWINDOW or + STARTF_USESTDHANDLES; + StartupInfo.wShowWindow := p_commandShow; + StartupInfo.hStdOutput := 0; + StartupInfo.hStdInput := 0; + + dwExitCode := $FFFFFFFF; +{ Create the app } + bRet := CreateProcess( + nil, { pointer to name of executable module } + pCommandLine, { pointer to command line string } + nil, { pointer to process security attributes } + nil, { pointer to thread security attributes } + True, { handle inheritance flag } + HIGH_PRIORITY_CLASS,{ creation flags } + nil, { pointer to new environment block } + nil, { pointer to current directory name } + StartupInfo, { pointer to STARTUPINFO } + ProcessInfo); { pointer to PROCESS_INF } + +{ wait for the app to finish its job and take the handles to free them later } + if bRet then + begin + WaitforSingleObject(ProcessInfo.hProcess, timeout); + hAppProcess := ProcessInfo.hProcess; + hAppThread := ProcessInfo.hThread; + GetExitCodeProcess (hAppProcess, dwExitCode); + end + else + dwExitCode := GetLastError; + + FINALLY +{ Close the handles. + Kernel objects, like the process and the files + we created in this case, are maintained by a usage + count. So, for cleaning up purposes, we have to + close the handles to inform the system that we don't + need the objects anymore } + + + + end; + Result := dwExitCode; +end; + function GetFolder(aRoot: integer; aCaption :string): string; var pPrograms,pBrowse: PItemIDList; diff --git a/Report/acCustomReportUn.dfm b/Report/acCustomReportUn.dfm index a1aec8c..0b232f3 100644 --- a/Report/acCustomReportUn.dfm +++ b/Report/acCustomReportUn.dfm @@ -2,8 +2,6 @@ object acCustomReport: TacCustomReport OldCreateOrder = False OnCreate = DataModuleCreate OnDestroy = DataModuleDestroy - Left = 505 - Top = 393 Height = 208 Width = 206 object FilterDatasource: TDataSource @@ -55,10 +53,10 @@ object acCustomReport: TacCustomReport PDFSettings.EncryptSettings.AllowPrint = True PDFSettings.EncryptSettings.Enabled = False PDFSettings.EncryptSettings.KeyLength = kl40Bit - PDFSettings.FontEncoding = feAnsi + PDFSettings.FontEncoding = feUnicode PDFSettings.ImageCompressionLevel = 25 PreviewFormSettings.WindowState = wsMaximized - PreviewFormSettings.ZoomSetting = zsPageWidth + PreviewFormSettings.ZoomSetting = zs100Percent RTFSettings.DefaultFont.Charset = DEFAULT_CHARSET RTFSettings.DefaultFont.Color = clWindowText RTFSettings.DefaultFont.Height = -13 @@ -73,7 +71,7 @@ object acCustomReport: TacCustomReport XLSSettings.Title = 'Report' Left = 128 Top = 96 - Version = '15.01' + Version = '15.0' mmColumnWidth = 188914 object Detail: TppDetailBand Background1.Brush.Style = bsClear diff --git a/Report/acCustomReportUn.pas b/Report/acCustomReportUn.pas index 5451d21..f7ecc66 100644 --- a/Report/acCustomReportUn.pas +++ b/Report/acCustomReportUn.pas @@ -4,12 +4,12 @@ interface uses SysUtils, Classes, ppComm, ppRelatv, ppProd, ppClass, ppReport, DB, - DBClient, osClientDataset, osComboFilter, FMTBcd, Provider, + DBClient, osClientDataset, osComboFilter, FMTBcd, Provider, SQLMainData, osCustomDataSetProvider, osSQLDataSetProvider, SqlExpr, osSQLDataSet, ppModule, raCodMod, ppMemo, ppVar, ppBands, ppStrtch, ppSubRpt, ppCtrls, ppPrnabl, ppCache, ppDB, ppDBPipe, ppTypes, Forms, ppViewr, daSQl, - daDataModule, daQueryDataView, TypInfo, Printers, - ppPDFDevice, ppPrintr, ppParameter, ppArchiv; + daDataModule, daQueryDataView, TypInfo, Printers, osSQLQuery, + ppPDFDevice, ppPrintr, ppParameter, ppArchiv, System.Zlib; type TTipoAdendo = (taWHERE, taORDER); @@ -25,6 +25,8 @@ TConfigImpressao = record margemEsquerda: double; margemDireita: double; tipoSaida: string; + IDTemplate: integer; + NomeRelatorio: string; end; TAdendo = record @@ -76,13 +78,13 @@ TacCustomReport = class(TDataModule) beforePrint: TNotifyEvent; adendos: TAdendos; - function getTemplate(id: integer; stream: TMemoryStream; - var config: TConfigImpressao): boolean; virtual; + function getTemplate(id: integer; stream: TMemoryStream; var config: TConfigImpressao): boolean; virtual; procedure linkEvents; virtual; function casosEspeciais(valorOriginal: string): string; virtual; procedure ajustarAdendos; virtual; function replaceParamId(str: string; id: integer): string; virtual; public + RecursoOrigem: String; procedure replaceReportSQLAddWhere(report: TppReport; template: TMemoryStream; id:integer); property forcePrintWithoutDialog: Boolean read FForcePrintWithoutDialog @@ -90,7 +92,8 @@ TacCustomReport = class(TDataModule) property forcePreview: Boolean read FForcePreview write setForcePreview; property PDFStream: TMemoryStream read FPDFStream write FPDFStream; property PrintToStream: Boolean read FPrintToStream write FPrintToStream; - procedure Print(const PID: integer); virtual; + procedure Print(const PID: integer); overload; virtual; + procedure Print(PID, reportId: integer); overload; virtual; function getPipeline(name: String): TppDataPipeline; function findComponentUserName(name: String): TComponent; procedure SetOutputFile(FileName: string; Format: TReportFormat = rfPrinter); @@ -110,7 +113,7 @@ TReportClass = class of TacCustomReport; implementation uses acCustomSQLMainDataUn, osReportUtils, acCustomRelatorioDataUn, Dialogs, - acCustomParametroSistemaDataUn; + acCustomParametroSistemaDataUn, osErrorHandler, StatusUnit, ParametroSistemaDataUn; {$R *.dfm} @@ -119,6 +122,11 @@ procedure TacCustomReport.linkEvents; // end; +procedure TacCustomReport.Print(PID, reportId: integer); +begin + Print(PID); +end; + {------------------------------------------------------------------------- ESTE MÉTODO PRECISA URGENTE DE UMA REFACTORING TOTAL - para piorar esta lógica está duplicada em: TImprimirRelatorioForm.ImprimirRelatorioComFiltro @@ -128,6 +136,7 @@ procedure TacCustomReport.Print(const PID: integer); var stream: TMemoryStream; idTemplate: integer; + updateContadorImpressao : TosSQLQuery; encontrou: boolean; showCancelDialog: boolean; config: TConfigImpressao; @@ -144,18 +153,21 @@ procedure TacCustomReport.Print(const PID: integer); config.margemInferior := -1; config.margemEsquerda := -1; config.margemDireita := -1; + config.IDTemplate := -1; config.tipoSaida := TSTela; beforePrint := Report.BeforePrint; stream := TMemoryStream.Create; config.preview := true; + try encontrou := false; + idTemplate := 0; if acCustomRelatorioData.isChangeable(ClassName) then begin idTemplate := acCustomRelatorioData.getTemplateConfigForUser(ClassName, config); if idTemplate <> -1 then begin - if getTemplateByID(idTemplate, stream) then + if getTemplateByID(idTemplate, stream, config) then if stream.Size<>0 then begin encontrou := true; @@ -163,6 +175,12 @@ procedure TacCustomReport.Print(const PID: integer); end; end; //chance da classe buscar seu template + if (not encontrou) and (self.RecursoOrigem = 'Aprovação Resultados') then + begin + encontrou := getTemplateLaudoRascunho(ClassName, stream, config); + if acCustomParametroSistemaData <> nil then + config.nomeImpressora := acCustomParametroSistemaData.getNomeImpressoraClasse('LASER'); + end; if not(encontrou) then begin encontrou := getTemplate(PID, stream, config); @@ -170,6 +188,7 @@ procedure TacCustomReport.Print(const PID: integer); if not(encontrou) then begin getTemplateByName(ClassName, stream); + config.NomeRelatorio := ClassName; if acCustomParametroSistemaData <> nil then config.nomeImpressora := acCustomParametroSistemaData.getNomeImpressoraClasse('LASER'); if stream.size<>0 then @@ -179,6 +198,12 @@ procedure TacCustomReport.Print(const PID: integer); begin ajustarAdendos; replaceReportSQLAddWhere(report, stream, PID); + end + else + begin + HError.Clear; + HError.Add('Relatório não encontrado ou parametrizado'); + HError.Check; end; if config.tipoSaida <> TSTela then @@ -186,9 +211,9 @@ procedure TacCustomReport.Print(const PID: integer); if config.tipoSaida = TSPDF then extensao := 'pdf'; if config.tipoSaida = TSTexto then extensao := 'txt'; if FTextFileName = '' then - if not PromptForFileName(FTextFileName, '*.' + extensao, extensao, - '', '', true) then - exit; + + if not PromptForFileName(FTextFileName, '*.' + extensao, extensao, '', '', true) then + Exit; if config.tipoSaida = TSPDF then SetOutputFile(FTextFileName, rfAcrobat); @@ -200,40 +225,44 @@ procedure TacCustomReport.Print(const PID: integer); report.BeforePrint := beforePrint; linkEvents; - if FPrintToFile then + if (config.tipoSaida <> TSTexto) then begin - if FPDFDevice = nil then + if FPrintToFile then begin - FPDFDevice := TppPDFDevice.Create(Self); - end; - FPDFDevice.FileName := FTextFileName; - FPDFDevice.Publisher := Report.Publisher; - FPDFDevice.PDFSettings := Report.PDFSettings; - end - else if FPrintToStream then - begin - if FPDFDevice = nil then + if FPDFDevice = nil then + begin + FPDFDevice := TppPDFDevice.Create(Self); + end; + FPDFDevice.FileName := FTextFileName; + FPDFDevice.Publisher := Report.Publisher; + Report.PDFSettings.UseJPEGCompression := False; + FPDFDevice.PDFSettings := Report.PDFSettings; + end + else if FPrintToStream then begin - FPDFDevice := TppPDFDevice.Create(Self); - end; - if FPDFStream <> nil then + if FPDFDevice = nil then + begin + FPDFDevice := TppPDFDevice.Create(Self); + end; + if FPDFStream <> nil then + begin + FreeAndNil(FPDFStream); + end; + FPDFStream := TMemoryStream.Create; + + FPDFDevice.PDFSettings := Report.PDFSettings; + FPDFDevice.OutputStream := FPDFStream; + FPDFDevice.Publisher := Report.Publisher; + end + else if (config.preview) then + begin + report.DeviceType := 'Screen'; + end + else begin - FreeAndNil(FPDFStream); + report.ShowPrintDialog := false; + report.DeviceType := 'Printer'; end; - FPDFStream := TMemoryStream.Create; - - FPDFDevice.PDFSettings := Report.PDFSettings; - FPDFDevice.OutputStream := FPDFStream; - FPDFDevice.Publisher := Report.Publisher; - end - else if config.preview then - begin - report.DeviceType := 'Screen'; - end - else - begin - report.ShowPrintDialog := false; - report.DeviceType := 'Printer'; end; if not FPrintToFile then @@ -291,13 +320,29 @@ procedure TacCustomReport.Print(const PID: integer); report.DeviceType := 'Screen'; end; - if PrintToStream or FPrintToFile then + if (PrintToStream or FPrintToFile) and (config.tipoSaida <> TSTexto) then begin Report.InitializeParameters; - Report.PrintToDevices + Report.PrintToDevices; end else Report.Print; + updateContadorImpressao := MainData.GetQuery; + + TParametroSistemaData.RegistrarUsoRecurso(Config.NomeRelatorio, rrRelatorio); + try + if idTemplate = 0 then + idTemplate := config.IDTemplate; + + updateContadorImpressao.SQL.Text := 'UPDATE rb_item '+ + ' SET FREQUENCIAUSO = FREQUENCIAUSO+1, '+ + ' DATAULTIMAIMPRESSAO = ' + + QuotedStr(FormatDateTime('dd.mm.yyyy', MainData.GetServerDatetime)) + + ' WHERE ITEM_ID = ' + IntToStr(idTemplate); + updateContadorImpressao.ExecSQL; + finally + acCustomSQLMainData.FreeQuery(updateContadorImpressao); + end; finally FreeAndNil(stream); end; @@ -313,14 +358,11 @@ procedure TacCustomReport.DataModuleCreate(Sender: TObject); function TacCustomReport.getPipeline(name: String): TppDataPipeline; var - aSQL: TDaSQL; lDataModule: TdaDataModule; liIndex, i: Integer; lDataView: TdaDataView; nomePipeline: String; begin - aSQL := nil; - lDataModule := daGetDataModule(Report.MainReport); if (lDataModule <> nil) then @@ -358,8 +400,6 @@ procedure TacCustomReport.replaceReportSQLAddWhere(report: TppReport; template: if template.Size <> 0 then report.Template.LoadFromStream(template); - aSQL := nil; - lDataModule := daGetDataModule(Report.MainReport); if (lDataModule <> nil) then @@ -408,8 +448,6 @@ procedure TacCustomReport.replaceReportSQLAddWhere(report: TppReport; template: end; function TacCustomReport.replaceId(str: string; id:integer): string; -var - pos1, pos2, pos3: integer; begin result := StringReplace(str,'\id',IntToStr(id),[rfReplaceAll, rfIgnoreCase]); end; @@ -543,7 +581,8 @@ function TacCustomReport.casosEspeciais(valorOriginal: string): string; procedure TacCustomReport.ReportPreviewFormCreate(Sender: TObject); begin - // + report.PreviewForm.WindowState := wsMaximized; + TppViewer(report.Previewform.Viewer).ZoomSetting := zs100Percent end; function TacCustomReport.getPaperName(printerName: String): String; diff --git a/package/fw.dof b/package/fw.dof deleted file mode 100644 index 6a564ae..0000000 --- a/package/fw.dof +++ /dev/null @@ -1,136 +0,0 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=0 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir= -UnitOutputDir=../Temp -PackageDLLOutputDir= -PackageDCPOutputDir= -SearchPath= -Packages= -Conditionals= -DebugSourceDirs= -UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir= -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=2 -MinorVer=6 -Release=137 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=1046 -CodePage=1252 -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=2.6.137.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= diff --git a/package/fw.dpk b/package/fw.dpk index 5b30878..421c5e6 100644 --- a/package/fw.dpk +++ b/package/fw.dpk @@ -15,7 +15,7 @@ package fw; {$OPTIMIZATION OFF} {$OVERFLOWCHECKS OFF} {$RANGECHECKS OFF} -{$REFERENCEINFO ON} +{$DEFINITIONINFO ON} {$SAFEDIVIDE OFF} {$STACKFRAMES ON} {$TYPEDADDRESS OFF} diff --git a/package/fw.dproj b/package/fw.dproj new file mode 100644 index 0000000..3ee4907 --- /dev/null +++ b/package/fw.dproj @@ -0,0 +1,284 @@ + + + {3D5FE4EA-7EBF-44F6-B86B-69679EDA1E04} + fw.dpk + True + Debug + 1 + Package + VCL + 14.6 + Win32 + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + 2 + false + CompanyName=;FileDescription=;FileVersion=2.6.137.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= + 6 + 1046 + false + true + true + 1 + false + 137 + true + false + ../Temp + Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;System.Win;Bde;Datasnap.Win;Data.Win;$(DCC_Namespace) + 00400000 + true + true + + + 1033 + true + CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= + fw_Icon.ico + Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) + + + fw_Icon.ico + + + false + 0 + RELEASE;$(DCC_Define) + false + + + true + false + DEBUG;$(DCC_Define) + + + 1033 + 0 + 1 + CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= + 0 + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
osForm
+
+ + + + +
osErrorHandlerForm
+
+ + + + + + + + + + + +
osLookupData
+ TDataModule +
+ +
acCustomSQLMainData
+ TDataModule +
+ +
osCustomEditForm
+
+ +
osWizForm
+
+ +
osCustomMainForm
+
+ +
FilterDefData
+ TDataModule +
+ +
acCustomParametroSistemaData
+ TDataModule +
+ +
acCustomRelatorioData
+ TDataModule +
+ + +
FilterDefEditForm
+
+ + +
AdministracaoLookupData
+ TDataModule +
+ +
RecursoData
+ TDataModule +
+ +
RelatorioLookupData
+ TDataModule +
+ +
EscolhaConexaoForm
+
+ +
TradutorForm
+
+ +
ImprimirRelatorioForm
+
+ +
acCustomReport
+ TDataModule +
+ + +
LoginForm
+
+ + +
ShowEventoLogForm
+
+ + +
RecursoEditForm
+
+ +
ImprimirRelatorioTesteForm
+
+ + Cfg_2 + Base + + + Base + + + Cfg_1 + Base + +
+ + Delphi.Personality.12 + Package + + + + fw.dpk + + + True + False + 2 + 6 + 137 + 0 + False + False + False + False + False + 1046 + 1252 + + + + + 2.6.137.0 + + + + + + 1.0.0.0 + + + + Microsoft Office 2000 Sample Automation Server Wrapper Components + + + + False + False + True + False + + + 12 + + + +
diff --git a/package/fw.dproj.local b/package/fw.dproj.local new file mode 100644 index 0000000..b3811b7 --- /dev/null +++ b/package/fw.dproj.local @@ -0,0 +1,2 @@ + + diff --git a/package/fw_Icon.ico b/package/fw_Icon.ico new file mode 100644 index 0000000..cfd8992 Binary files /dev/null and b/package/fw_Icon.ico differ