| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- unit CopyScreen;
- {$WARN SYMBOL_PLATFORM OFF}
- interface
- uses
- Windows, ActiveX, Classes, ComObj, Graphics, Shdocvw, Registry, IETools_TLB,
- StdVcl, CopyScreenFrm, Unit1, Forms, Controls, SysUtils, IdMultipartFormData,
- IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;
- type
- TCopyScreen = class(TAutoObject, ICopyScreen, IObjectSafety)
- private
- FObjectSafetyFlags: DWORD;
- protected
- function Get_FileName: OleVariant; safecall;
- procedure Start; safecall;
- function GetInterfaceSafetyOptions(const IID: TIID; pdwSupportedOptions,
- pdwEnabledOptions: PDWORD): HResult; stdcall;
- function SetInterfaceSafetyOptions(const IID: TIID; dwOptionSetMask,
- dwEnabledOptions: DWORD): HResult; stdcall;
- procedure Upload(URL: OleVariant); safecall;
- end;
- implementation
- uses ComServ;
- //------------------------------------------------------------------------------
- function TCopyScreen.GetInterfaceSafetyOptions(const IID: TIID;
- pdwSupportedOptions, pdwEnabledOptions: PDWORD): HResult;
- var
- Unk: IUnknown;
- begin
- if (pdwSupportedOptions = nil) or (pdwEnabledOptions = nil) then
- begin
- Result := E_POINTER;
- Exit;
- end;
- Result := QueryInterface(IID, Unk);
- if Result = S_OK then
- begin
- pdwSupportedOptions^ := INTERFACESAFE_FOR_UNTRUSTED_CALLER or
- INTERFACESAFE_FOR_UNTRUSTED_DATA;
- pdwEnabledOptions^ := FObjectSafetyFlags and
- (INTERFACESAFE_FOR_UNTRUSTED_CALLER or INTERFACESAFE_FOR_UNTRUSTED_DATA);
- end
- else begin
- pdwSupportedOptions^ := 0;
- pdwEnabledOptions^ := 0;
- end;
- end;
- //------------------------------------------------------------------------------
- function TCopyScreen.SetInterfaceSafetyOptions(const IID: TIID;
- dwOptionSetMask, dwEnabledOptions: DWORD): HResult;
- var
- Unk: IUnknown;
- begin
- Result := QueryInterface(IID, Unk);
- if Result <> S_OK then Exit;
- FObjectSafetyFlags := dwEnabledOptions and dwOptionSetMask;
- end;
- function TCopyScreen.Get_FileName: OleVariant;
- begin
- Result := ExtractFileName(ScreenFileName);
- end;
- procedure TCopyScreen.Start;
- begin
- Form1 := TForm1.Create(nil);
- Form1.Show;
- while Form1 <> nil do
- begin
- Application.ProcessMessages;
- Sleep(10);
- end;
- end;
- procedure TCopyScreen.Upload(URL: OleVariant);
- var
- IdHTTP: TIdHTTP;
- mp: TIdMultiPartFormDataStream ;
- begin
- URL := 'http://220.191.211.21/WebScreenCut/recv.asp';
- mp:= TIdMultiPartFormDataStream.Create ;
- mp.AddFile('UpFile', ScreenFileName, 'multipart/form-data');
- IdHTTP := TIdHTTP.Create(nil);
- try
- try
- IdHTTP.Post(URL, mp);
- //MessageBox(0, PChar(IdHTTP.Response.ResponseText), '', MB_OK);
- except
- on E: Exception do
- begin
- MessageBox(0, PChar('´«ÉÏʧ°Ü£º' + E.Message), '', MB_OK);
- end;
- end
- finally
- IdHTTP.Free;
- mp.Free;
- end;
- end;
- initialization
- TAutoObjectFactory.Create(ComServer, TCopyScreen, Class_CopyScreen,
- ciMultiInstance, tmApartment);
- end.
|