ShockwaveFlashObjects_TLB.pas
上传用户:raido2005
上传日期:2022-06-22
资源大小:5044k
文件大小:46k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit ShockwaveFlashObjects_TLB;
  2. // ************************************************************************ //
  3. // WARNING                                                                    
  4. // -------                                                                    
  5. // The types declared in this file were generated from data read from a       
  6. // Type Library. If this type library is explicitly or indirectly (via        
  7. // another type library referring to this type library) re-imported, or the   
  8. // 'Refresh' command of the Type Library Editor activated while editing the   
  9. // Type Library, the contents of this file will be regenerated and all        
  10. // manual modifications will be lost.                                         
  11. // ************************************************************************ //
  12. // PASTLWTR : 1.2
  13. // File generated on 23.10.2006 17:45:09 from Type Library described below.
  14. // ************************************************************************  //
  15. // Type Lib: C:WINDOWSsystem32MacromedFlashFlash9.ocx (1)
  16. // LIBID: {D27CDB6B-AE6D-11CF-96B8-444553540000}
  17. // LCID: 0
  18. // Helpfile: 
  19. // HelpString: Shockwave Flash
  20. // DepndLst: 
  21. //   (1) v2.0 stdole, (C:WINDOWSsystem32stdole2.tlb)
  22. // Errors:
  23. //   Hint: Parameter 'label' of IShockwaveFlash.TGotoLabel changed to 'label_'
  24. //   Hint: Parameter 'property' of IShockwaveFlash.TSetProperty changed to 'property_'
  25. //   Hint: Parameter 'property' of IShockwaveFlash.TGetProperty changed to 'property_'
  26. //   Hint: Parameter 'label' of IShockwaveFlash.TCallLabel changed to 'label_'
  27. //   Hint: Parameter 'property' of IShockwaveFlash.TSetPropertyNum changed to 'property_'
  28. //   Hint: Parameter 'property' of IShockwaveFlash.TGetPropertyNum changed to 'property_'
  29. //   Hint: Parameter 'property' of IShockwaveFlash.TGetPropertyAsNumber changed to 'property_'
  30. //   Error creating palette bitmap of (TFlashProp) : Server C:WINDOWSsystem32MacromedFlashFlash9.ocx contains no icons
  31. //   Error creating palette bitmap of (TFlashObjectInterface) : Server C:WINDOWSsystem32MacromedFlashFlash9.ocx contains no icons
  32. // ************************************************************************ //
  33. // *************************************************************************//
  34. // NOTE:                                                                      
  35. // Items guarded by $IFDEF_LIVE_SERVER_AT_DESIGN_TIME are used by properties  
  36. // which return objects that may need to be explicitly created via a function 
  37. // call prior to any access via the property. These items have been disabled  
  38. // in order to prevent accidental use from within the object inspector. You   
  39. // may enable them by defining LIVE_SERVER_AT_DESIGN_TIME or by selectively   
  40. // removing them from the $IFDEF blocks. However, such items must still be    
  41. // programmatically created via a method of the appropriate CoClass before    
  42. // they can be used.                                                          
  43. {$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers. 
  44. {$WARN SYMBOL_PLATFORM OFF}
  45. {$WRITEABLECONST ON}
  46. {$VARPROPSETTER ON}
  47. interface
  48. uses Windows, ActiveX, Classes, Graphics, OleCtrls, OleServer, StdVCL, Variants;
  49.   
  50. // *********************************************************************//
  51. // GUIDS declared in the TypeLibrary. Following prefixes are used:        
  52. //   Type Libraries     : LIBID_xxxx                                      
  53. //   CoClasses          : CLASS_xxxx                                      
  54. //   DISPInterfaces     : DIID_xxxx                                       
  55. //   Non-DISP interfaces: IID_xxxx                                        
  56. // *********************************************************************//
  57. const
  58.   // TypeLibrary Major and minor versions
  59.   ShockwaveFlashObjectsMajorVersion = 1;
  60.   ShockwaveFlashObjectsMinorVersion = 0;
  61.   LIBID_ShockwaveFlashObjects: TGUID = '{D27CDB6B-AE6D-11CF-96B8-444553540000}';
  62.   IID_IShockwaveFlash: TGUID = '{D27CDB6C-AE6D-11CF-96B8-444553540000}';
  63.   DIID__IShockwaveFlashEvents: TGUID = '{D27CDB6D-AE6D-11CF-96B8-444553540000}';
  64.   CLASS_ShockwaveFlash: TGUID = '{D27CDB6E-AE6D-11CF-96B8-444553540000}';
  65.   CLASS_FlashProp: TGUID = '{1171A62F-05D2-11D1-83FC-00A0C9089C5A}';
  66.   IID_IFlashFactory: TGUID = '{D27CDB70-AE6D-11CF-96B8-444553540000}';
  67.   IID_IDispatchEx: TGUID = '{A6EF9860-C720-11D0-9337-00A0C90DCAA9}';
  68.   IID_IFlashObjectInterface: TGUID = '{D27CDB72-AE6D-11CF-96B8-444553540000}';
  69.   IID_IServiceProvider: TGUID = '{6D5140C1-7436-11CE-8034-00AA006009FA}';
  70.   CLASS_FlashObjectInterface: TGUID = '{D27CDB71-AE6D-11CF-96B8-444553540000}';
  71. type
  72. // *********************************************************************//
  73. // Forward declaration of types defined in TypeLibrary                    
  74. // *********************************************************************//
  75.   IShockwaveFlash = interface;
  76.   IShockwaveFlashDisp = dispinterface;
  77.   _IShockwaveFlashEvents = dispinterface;
  78.   IFlashFactory = interface;
  79.   IDispatchEx = interface;
  80.   IFlashObjectInterface = interface;
  81.   IServiceProvider = interface;
  82. // *********************************************************************//
  83. // Declaration of CoClasses defined in Type Library                       
  84. // (NOTE: Here we map each CoClass to its Default Interface)              
  85. // *********************************************************************//
  86.   ShockwaveFlash = IShockwaveFlash;
  87.   FlashProp = IUnknown;
  88.   FlashObjectInterface = IFlashObjectInterface;
  89. // *********************************************************************//
  90. // Declaration of structures, unions and aliases.                         
  91. // *********************************************************************//
  92.   PUserType1 = ^DISPPARAMS; {*}
  93.   PSYSUINT1 = ^SYSUINT; {*}
  94.   PUserType2 = ^TGUID; {*}
  95. // *********************************************************************//
  96. // Interface: IShockwaveFlash
  97. // Flags:     (4416) Dual OleAutomation Dispatchable
  98. // GUID:      {D27CDB6C-AE6D-11CF-96B8-444553540000}
  99. // *********************************************************************//
  100.   IShockwaveFlash = interface(IDispatch)
  101.     ['{D27CDB6C-AE6D-11CF-96B8-444553540000}']
  102.     function Get_ReadyState: Integer; safecall;
  103.     function Get_TotalFrames: Integer; safecall;
  104.     function Get_Playing: WordBool; safecall;
  105.     procedure Set_Playing(pVal: WordBool); safecall;
  106.     function Get_Quality: SYSINT; safecall;
  107.     procedure Set_Quality(pVal: SYSINT); safecall;
  108.     function Get_ScaleMode: SYSINT; safecall;
  109.     procedure Set_ScaleMode(pVal: SYSINT); safecall;
  110.     function Get_AlignMode: SYSINT; safecall;
  111.     procedure Set_AlignMode(pVal: SYSINT); safecall;
  112.     function Get_BackgroundColor: Integer; safecall;
  113.     procedure Set_BackgroundColor(pVal: Integer); safecall;
  114.     function Get_Loop: WordBool; safecall;
  115.     procedure Set_Loop(pVal: WordBool); safecall;
  116.     function Get_Movie: WideString; safecall;
  117.     procedure Set_Movie(const pVal: WideString); safecall;
  118.     function Get_FrameNum: Integer; safecall;
  119.     procedure Set_FrameNum(pVal: Integer); safecall;
  120.     procedure SetZoomRect(left: Integer; top: Integer; right: Integer; bottom: Integer); safecall;
  121.     procedure Zoom(factor: SYSINT); safecall;
  122.     procedure Pan(x: Integer; y: Integer; mode: SYSINT); safecall;
  123.     procedure Play; safecall;
  124.     procedure Stop; safecall;
  125.     procedure Back; safecall;
  126.     procedure Forward; safecall;
  127.     procedure Rewind; safecall;
  128.     procedure StopPlay; safecall;
  129.     procedure GotoFrame(FrameNum: Integer); safecall;
  130.     function CurrentFrame: Integer; safecall;
  131.     function IsPlaying: WordBool; safecall;
  132.     function PercentLoaded: Integer; safecall;
  133.     function FrameLoaded(FrameNum: Integer): WordBool; safecall;
  134.     function FlashVersion: Integer; safecall;
  135.     function Get_WMode: WideString; safecall;
  136.     procedure Set_WMode(const pVal: WideString); safecall;
  137.     function Get_SAlign: WideString; safecall;
  138.     procedure Set_SAlign(const pVal: WideString); safecall;
  139.     function Get_Menu: WordBool; safecall;
  140.     procedure Set_Menu(pVal: WordBool); safecall;
  141.     function Get_Base: WideString; safecall;
  142.     procedure Set_Base(const pVal: WideString); safecall;
  143.     function Get_Scale: WideString; safecall;
  144.     procedure Set_Scale(const pVal: WideString); safecall;
  145.     function Get_DeviceFont: WordBool; safecall;
  146.     procedure Set_DeviceFont(pVal: WordBool); safecall;
  147.     function Get_EmbedMovie: WordBool; safecall;
  148.     procedure Set_EmbedMovie(pVal: WordBool); safecall;
  149.     function Get_BGColor: WideString; safecall;
  150.     procedure Set_BGColor(const pVal: WideString); safecall;
  151.     function Get_Quality2: WideString; safecall;
  152.     procedure Set_Quality2(const pVal: WideString); safecall;
  153.     procedure LoadMovie(layer: SYSINT; const url: WideString); safecall;
  154.     procedure TGotoFrame(const target: WideString; FrameNum: Integer); safecall;
  155.     procedure TGotoLabel(const target: WideString; const label_: WideString); safecall;
  156.     function TCurrentFrame(const target: WideString): Integer; safecall;
  157.     function TCurrentLabel(const target: WideString): WideString; safecall;
  158.     procedure TPlay(const target: WideString); safecall;
  159.     procedure TStopPlay(const target: WideString); safecall;
  160.     procedure SetVariable(const name: WideString; const value: WideString); safecall;
  161.     function GetVariable(const name: WideString): WideString; safecall;
  162.     procedure TSetProperty(const target: WideString; property_: SYSINT; const value: WideString); safecall;
  163.     function TGetProperty(const target: WideString; property_: SYSINT): WideString; safecall;
  164.     procedure TCallFrame(const target: WideString; FrameNum: SYSINT); safecall;
  165.     procedure TCallLabel(const target: WideString; const label_: WideString); safecall;
  166.     procedure TSetPropertyNum(const target: WideString; property_: SYSINT; value: Double); safecall;
  167.     function TGetPropertyNum(const target: WideString; property_: SYSINT): Double; safecall;
  168.     function TGetPropertyAsNumber(const target: WideString; property_: SYSINT): Double; safecall;
  169.     function Get_SWRemote: WideString; safecall;
  170.     procedure Set_SWRemote(const pVal: WideString); safecall;
  171.     function Get_FlashVars: WideString; safecall;
  172.     procedure Set_FlashVars(const pVal: WideString); safecall;
  173.     function Get_AllowScriptAccess: WideString; safecall;
  174.     procedure Set_AllowScriptAccess(const pVal: WideString); safecall;
  175.     function Get_MovieData: WideString; safecall;
  176.     procedure Set_MovieData(const pVal: WideString); safecall;
  177.     function Get_InlineData: IUnknown; safecall;
  178.     procedure Set_InlineData(const ppIUnknown: IUnknown); safecall;
  179.     function Get_SeamlessTabbing: WordBool; safecall;
  180.     procedure Set_SeamlessTabbing(pVal: WordBool); safecall;
  181.     procedure EnforceLocalSecurity; safecall;
  182.     function Get_Profile: WordBool; safecall;
  183.     procedure Set_Profile(pVal: WordBool); safecall;
  184.     function Get_ProfileAddress: WideString; safecall;
  185.     procedure Set_ProfileAddress(const pVal: WideString); safecall;
  186.     function Get_ProfilePort: Integer; safecall;
  187.     procedure Set_ProfilePort(pVal: Integer); safecall;
  188.     function CallFunction(const request: WideString): WideString; safecall;
  189.     procedure SetReturnValue(const returnValue: WideString); safecall;
  190.     procedure DisableLocalSecurity; safecall;
  191.     function Get_AllowNetworking: WideString; safecall;
  192.     procedure Set_AllowNetworking(const pVal: WideString); safecall;
  193.     property ReadyState: Integer read Get_ReadyState;
  194.     property TotalFrames: Integer read Get_TotalFrames;
  195.     property Playing: WordBool read Get_Playing write Set_Playing;
  196.     property Quality: SYSINT read Get_Quality write Set_Quality;
  197.     property ScaleMode: SYSINT read Get_ScaleMode write Set_ScaleMode;
  198.     property AlignMode: SYSINT read Get_AlignMode write Set_AlignMode;
  199.     property BackgroundColor: Integer read Get_BackgroundColor write Set_BackgroundColor;
  200.     property Loop: WordBool read Get_Loop write Set_Loop;
  201.     property Movie: WideString read Get_Movie write Set_Movie;
  202.     property FrameNum: Integer read Get_FrameNum write Set_FrameNum;
  203.     property WMode: WideString read Get_WMode write Set_WMode;
  204.     property SAlign: WideString read Get_SAlign write Set_SAlign;
  205.     property Menu: WordBool read Get_Menu write Set_Menu;
  206.     property Base: WideString read Get_Base write Set_Base;
  207.     property Scale: WideString read Get_Scale write Set_Scale;
  208.     property DeviceFont: WordBool read Get_DeviceFont write Set_DeviceFont;
  209.     property EmbedMovie: WordBool read Get_EmbedMovie write Set_EmbedMovie;
  210.     property BGColor: WideString read Get_BGColor write Set_BGColor;
  211.     property Quality2: WideString read Get_Quality2 write Set_Quality2;
  212.     property SWRemote: WideString read Get_SWRemote write Set_SWRemote;
  213.     property FlashVars: WideString read Get_FlashVars write Set_FlashVars;
  214.     property AllowScriptAccess: WideString read Get_AllowScriptAccess write Set_AllowScriptAccess;
  215.     property MovieData: WideString read Get_MovieData write Set_MovieData;
  216.     property InlineData: IUnknown read Get_InlineData write Set_InlineData;
  217.     property SeamlessTabbing: WordBool read Get_SeamlessTabbing write Set_SeamlessTabbing;
  218.     property Profile: WordBool read Get_Profile write Set_Profile;
  219.     property ProfileAddress: WideString read Get_ProfileAddress write Set_ProfileAddress;
  220.     property ProfilePort: Integer read Get_ProfilePort write Set_ProfilePort;
  221.     property AllowNetworking: WideString read Get_AllowNetworking write Set_AllowNetworking;
  222.   end;
  223. // *********************************************************************//
  224. // DispIntf:  IShockwaveFlashDisp
  225. // Flags:     (4416) Dual OleAutomation Dispatchable
  226. // GUID:      {D27CDB6C-AE6D-11CF-96B8-444553540000}
  227. // *********************************************************************//
  228.   IShockwaveFlashDisp = dispinterface
  229.     ['{D27CDB6C-AE6D-11CF-96B8-444553540000}']
  230.     property ReadyState: Integer readonly dispid -525;
  231.     property TotalFrames: Integer readonly dispid 124;
  232.     property Playing: WordBool dispid 125;
  233.     property Quality: SYSINT dispid 105;
  234.     property ScaleMode: SYSINT dispid 120;
  235.     property AlignMode: SYSINT dispid 121;
  236.     property BackgroundColor: Integer dispid 123;
  237.     property Loop: WordBool dispid 106;
  238.     property Movie: WideString dispid 102;
  239.     property FrameNum: Integer dispid 107;
  240.     procedure SetZoomRect(left: Integer; top: Integer; right: Integer; bottom: Integer); dispid 109;
  241.     procedure Zoom(factor: SYSINT); dispid 118;
  242.     procedure Pan(x: Integer; y: Integer; mode: SYSINT); dispid 119;
  243.     procedure Play; dispid 112;
  244.     procedure Stop; dispid 113;
  245.     procedure Back; dispid 114;
  246.     procedure Forward; dispid 115;
  247.     procedure Rewind; dispid 116;
  248.     procedure StopPlay; dispid 126;
  249.     procedure GotoFrame(FrameNum: Integer); dispid 127;
  250.     function CurrentFrame: Integer; dispid 128;
  251.     function IsPlaying: WordBool; dispid 129;
  252.     function PercentLoaded: Integer; dispid 130;
  253.     function FrameLoaded(FrameNum: Integer): WordBool; dispid 131;
  254.     function FlashVersion: Integer; dispid 132;
  255.     property WMode: WideString dispid 133;
  256.     property SAlign: WideString dispid 134;
  257.     property Menu: WordBool dispid 135;
  258.     property Base: WideString dispid 136;
  259.     property Scale: WideString dispid 137;
  260.     property DeviceFont: WordBool dispid 138;
  261.     property EmbedMovie: WordBool dispid 139;
  262.     property BGColor: WideString dispid 140;
  263.     property Quality2: WideString dispid 141;
  264.     procedure LoadMovie(layer: SYSINT; const url: WideString); dispid 142;
  265.     procedure TGotoFrame(const target: WideString; FrameNum: Integer); dispid 143;
  266.     procedure TGotoLabel(const target: WideString; const label_: WideString); dispid 144;
  267.     function TCurrentFrame(const target: WideString): Integer; dispid 145;
  268.     function TCurrentLabel(const target: WideString): WideString; dispid 146;
  269.     procedure TPlay(const target: WideString); dispid 147;
  270.     procedure TStopPlay(const target: WideString); dispid 148;
  271.     procedure SetVariable(const name: WideString; const value: WideString); dispid 151;
  272.     function GetVariable(const name: WideString): WideString; dispid 152;
  273.     procedure TSetProperty(const target: WideString; property_: SYSINT; const value: WideString); dispid 153;
  274.     function TGetProperty(const target: WideString; property_: SYSINT): WideString; dispid 154;
  275.     procedure TCallFrame(const target: WideString; FrameNum: SYSINT); dispid 155;
  276.     procedure TCallLabel(const target: WideString; const label_: WideString); dispid 156;
  277.     procedure TSetPropertyNum(const target: WideString; property_: SYSINT; value: Double); dispid 157;
  278.     function TGetPropertyNum(const target: WideString; property_: SYSINT): Double; dispid 158;
  279.     function TGetPropertyAsNumber(const target: WideString; property_: SYSINT): Double; dispid 172;
  280.     property SWRemote: WideString dispid 159;
  281.     property FlashVars: WideString dispid 170;
  282.     property AllowScriptAccess: WideString dispid 171;
  283.     property MovieData: WideString dispid 190;
  284.     property InlineData: IUnknown dispid 191;
  285.     property SeamlessTabbing: WordBool dispid 192;
  286.     procedure EnforceLocalSecurity; dispid 193;
  287.     property Profile: WordBool dispid 194;
  288.     property ProfileAddress: WideString dispid 195;
  289.     property ProfilePort: Integer dispid 196;
  290.     function CallFunction(const request: WideString): WideString; dispid 198;
  291.     procedure SetReturnValue(const returnValue: WideString); dispid 199;
  292.     procedure DisableLocalSecurity; dispid 200;
  293.     property AllowNetworking: WideString dispid 201;
  294.   end;
  295. // *********************************************************************//
  296. // DispIntf:  _IShockwaveFlashEvents
  297. // Flags:     (4112) Hidden Dispatchable
  298. // GUID:      {D27CDB6D-AE6D-11CF-96B8-444553540000}
  299. // *********************************************************************//
  300.   _IShockwaveFlashEvents = dispinterface
  301.     ['{D27CDB6D-AE6D-11CF-96B8-444553540000}']
  302.     procedure OnReadyStateChange(newState: Integer); dispid -609;
  303.     procedure OnProgress(percentDone: Integer); dispid 1958;
  304.     procedure FSCommand(const command: WideString; const args: WideString); dispid 150;
  305.     procedure FlashCall(const request: WideString); dispid 197;
  306.   end;
  307. // *********************************************************************//
  308. // Interface: IFlashFactory
  309. // Flags:     (0)
  310. // GUID:      {D27CDB70-AE6D-11CF-96B8-444553540000}
  311. // *********************************************************************//
  312.   IFlashFactory = interface(IUnknown)
  313.     ['{D27CDB70-AE6D-11CF-96B8-444553540000}']
  314.   end;
  315. // *********************************************************************//
  316. // Interface: IDispatchEx
  317. // Flags:     (4096) Dispatchable
  318. // GUID:      {A6EF9860-C720-11D0-9337-00A0C90DCAA9}
  319. // *********************************************************************//
  320.   IDispatchEx = interface(IDispatch)
  321.     ['{A6EF9860-C720-11D0-9337-00A0C90DCAA9}']
  322.     function GetDispID(const bstrName: WideString; grfdex: LongWord; out pid: Integer): HResult; stdcall;
  323.     function RemoteInvokeEx(id: Integer; lcid: LongWord; dwFlags: LongWord; var pdp: DISPPARAMS; 
  324.                             out pvarRes: OleVariant; out pei: EXCEPINFO; 
  325.                             const pspCaller: IServiceProvider; cvarRefArg: SYSUINT; 
  326.                             var rgiRefArg: SYSUINT; var rgvarRefArg: OleVariant): HResult; stdcall;
  327.     function DeleteMemberByName(const bstrName: WideString; grfdex: LongWord): HResult; stdcall;
  328.     function DeleteMemberByDispID(id: Integer): HResult; stdcall;
  329.     function GetMemberProperties(id: Integer; grfdexFetch: LongWord; out pgrfdex: LongWord): HResult; stdcall;
  330.     function GetMemberName(id: Integer; out pbstrName: WideString): HResult; stdcall;
  331.     function GetNextDispID(grfdex: LongWord; id: Integer; out pid: Integer): HResult; stdcall;
  332.     function GetNameSpaceParent(out ppunk: IUnknown): HResult; stdcall;
  333.   end;
  334. // *********************************************************************//
  335. // Interface: IFlashObjectInterface
  336. // Flags:     (4096) Dispatchable
  337. // GUID:      {D27CDB72-AE6D-11CF-96B8-444553540000}
  338. // *********************************************************************//
  339.   IFlashObjectInterface = interface(IDispatchEx)
  340.     ['{D27CDB72-AE6D-11CF-96B8-444553540000}']
  341.   end;
  342. // *********************************************************************//
  343. // Interface: IServiceProvider
  344. // Flags:     (0)
  345. // GUID:      {6D5140C1-7436-11CE-8034-00AA006009FA}
  346. // *********************************************************************//
  347.   IServiceProvider = interface(IUnknown)
  348.     ['{6D5140C1-7436-11CE-8034-00AA006009FA}']
  349.     function RemoteQueryService(var guidService: TGUID; var riid: TGUID; out ppvObject: IUnknown): HResult; stdcall;
  350.   end;
  351. // *********************************************************************//
  352. // OLE Control Proxy class declaration
  353. // Control Name     : TShockwaveFlash
  354. // Help String      : Shockwave Flash
  355. // Default Interface: IShockwaveFlash
  356. // Def. Intf. DISP? : No
  357. // Event   Interface: _IShockwaveFlashEvents
  358. // TypeFlags        : (2) CanCreate
  359. // *********************************************************************//
  360.   TShockwaveFlashOnReadyStateChange = procedure(ASender: TObject; newState: Integer) of object;
  361.   TShockwaveFlashOnProgress = procedure(ASender: TObject; percentDone: Integer) of object;
  362.   TShockwaveFlashFSCommand = procedure(ASender: TObject; const command: WideString; 
  363.                                                          const args: WideString) of object;
  364.   TShockwaveFlashFlashCall = procedure(ASender: TObject; const request: WideString) of object;
  365.   TShockwaveFlash = class(TOleControl)
  366.   private
  367.     FOnReadyStateChange: TShockwaveFlashOnReadyStateChange;
  368.     FOnProgress: TShockwaveFlashOnProgress;
  369.     FOnFSCommand: TShockwaveFlashFSCommand;
  370.     FOnFlashCall: TShockwaveFlashFlashCall;
  371.     FIntf: IShockwaveFlash;
  372.     function  GetControlInterface: IShockwaveFlash;
  373.   protected
  374.     procedure CreateControl;
  375.     procedure InitControlData; override;
  376.     function Get_InlineData: IUnknown;
  377.     procedure Set_InlineData(const ppIUnknown: IUnknown);
  378.   public
  379.     procedure SetZoomRect(left: Integer; top: Integer; right: Integer; bottom: Integer);
  380.     procedure Zoom(factor: SYSINT);
  381.     procedure Pan(x: Integer; y: Integer; mode: SYSINT);
  382.     procedure Play;
  383.     procedure Stop;
  384.     procedure Back;
  385.     procedure Forward;
  386.     procedure Rewind;
  387.     procedure StopPlay;
  388.     procedure GotoFrame(FrameNum: Integer);
  389.     function CurrentFrame: Integer;
  390.     function IsPlaying: WordBool;
  391.     function PercentLoaded: Integer;
  392.     function FrameLoaded(FrameNum: Integer): WordBool;
  393.     function FlashVersion: Integer;
  394.     procedure LoadMovie(layer: SYSINT; const url: WideString);
  395.     procedure TGotoFrame(const target: WideString; FrameNum: Integer);
  396.     procedure TGotoLabel(const target: WideString; const label_: WideString);
  397.     function TCurrentFrame(const target: WideString): Integer;
  398.     function TCurrentLabel(const target: WideString): WideString;
  399.     procedure TPlay(const target: WideString);
  400.     procedure TStopPlay(const target: WideString);
  401.     procedure SetVariable(const name: WideString; const value: WideString);
  402.     function GetVariable(const name: WideString): WideString;
  403.     procedure TSetProperty(const target: WideString; property_: SYSINT; const value: WideString);
  404.     function TGetProperty(const target: WideString; property_: SYSINT): WideString;
  405.     procedure TCallFrame(const target: WideString; FrameNum: SYSINT);
  406.     procedure TCallLabel(const target: WideString; const label_: WideString);
  407.     procedure TSetPropertyNum(const target: WideString; property_: SYSINT; value: Double);
  408.     function TGetPropertyNum(const target: WideString; property_: SYSINT): Double;
  409.     function TGetPropertyAsNumber(const target: WideString; property_: SYSINT): Double;
  410.     procedure EnforceLocalSecurity;
  411.     function CallFunction(const request: WideString): WideString;
  412.     procedure SetReturnValue(const returnValue: WideString);
  413.     procedure DisableLocalSecurity;
  414.     property  ControlInterface: IShockwaveFlash read GetControlInterface;
  415.     property  DefaultInterface: IShockwaveFlash read GetControlInterface;
  416.     property ReadyState: Integer index -525 read GetIntegerProp;
  417.     property TotalFrames: Integer index 124 read GetIntegerProp;
  418.     property InlineData: IUnknown index 191 read GetIUnknownProp write SetIUnknownProp;
  419.   published
  420.     property Anchors;
  421.     property  TabStop;
  422.     property  Align;
  423.     property  DragCursor;
  424.     property  DragMode;
  425.     property  ParentShowHint;
  426.     property  PopupMenu;
  427.     property  ShowHint;
  428.     property  TabOrder;
  429.     property  Visible;
  430.     property  OnDragDrop;
  431.     property  OnDragOver;
  432.     property  OnEndDrag;
  433.     property  OnEnter;
  434.     property  OnExit;
  435.     property  OnStartDrag;
  436.     property Playing: WordBool index 125 read GetWordBoolProp write SetWordBoolProp stored False;
  437.     property Quality: Integer index 105 read GetIntegerProp write SetIntegerProp stored False;
  438.     property ScaleMode: Integer index 120 read GetIntegerProp write SetIntegerProp stored False;
  439.     property AlignMode: Integer index 121 read GetIntegerProp write SetIntegerProp stored False;
  440.     property BackgroundColor: Integer index 123 read GetIntegerProp write SetIntegerProp stored False;
  441.     property Loop: WordBool index 106 read GetWordBoolProp write SetWordBoolProp stored False;
  442.     property Movie: WideString index 102 read GetWideStringProp write SetWideStringProp stored False;
  443.     property FrameNum: Integer index 107 read GetIntegerProp write SetIntegerProp stored False;
  444.     property WMode: WideString index 133 read GetWideStringProp write SetWideStringProp stored False;
  445.     property SAlign: WideString index 134 read GetWideStringProp write SetWideStringProp stored False;
  446.     property Menu: WordBool index 135 read GetWordBoolProp write SetWordBoolProp stored False;
  447.     property Base: WideString index 136 read GetWideStringProp write SetWideStringProp stored False;
  448.     property Scale: WideString index 137 read GetWideStringProp write SetWideStringProp stored False;
  449.     property DeviceFont: WordBool index 138 read GetWordBoolProp write SetWordBoolProp stored False;
  450.     property EmbedMovie: WordBool index 139 read GetWordBoolProp write SetWordBoolProp stored False;
  451.     property BGColor: WideString index 140 read GetWideStringProp write SetWideStringProp stored False;
  452.     property Quality2: WideString index 141 read GetWideStringProp write SetWideStringProp stored False;
  453.     property SWRemote: WideString index 159 read GetWideStringProp write SetWideStringProp stored False;
  454.     property FlashVars: WideString index 170 read GetWideStringProp write SetWideStringProp stored False;
  455.     property AllowScriptAccess: WideString index 171 read GetWideStringProp write SetWideStringProp stored False;
  456.     property MovieData: WideString index 190 read GetWideStringProp write SetWideStringProp stored False;
  457.     property SeamlessTabbing: WordBool index 192 read GetWordBoolProp write SetWordBoolProp stored False;
  458.     property Profile: WordBool index 194 read GetWordBoolProp write SetWordBoolProp stored False;
  459.     property ProfileAddress: WideString index 195 read GetWideStringProp write SetWideStringProp stored False;
  460.     property ProfilePort: Integer index 196 read GetIntegerProp write SetIntegerProp stored False;
  461.     property AllowNetworking: WideString index 201 read GetWideStringProp write SetWideStringProp stored False;
  462.     property OnReadyStateChange: TShockwaveFlashOnReadyStateChange read FOnReadyStateChange write FOnReadyStateChange;
  463.     property OnProgress: TShockwaveFlashOnProgress read FOnProgress write FOnProgress;
  464.     property OnFSCommand: TShockwaveFlashFSCommand read FOnFSCommand write FOnFSCommand;
  465.     property OnFlashCall: TShockwaveFlashFlashCall read FOnFlashCall write FOnFlashCall;
  466.   end;
  467. // *********************************************************************//
  468. // The Class CoFlashProp provides a Create and CreateRemote method to          
  469. // create instances of the default interface IUnknown exposed by              
  470. // the CoClass FlashProp. The functions are intended to be used by             
  471. // clients wishing to automate the CoClass objects exposed by the         
  472. // server of this typelibrary.                                            
  473. // *********************************************************************//
  474.   CoFlashProp = class
  475.     class function Create: IUnknown;
  476.     class function CreateRemote(const MachineName: string): IUnknown;
  477.   end;
  478. // *********************************************************************//
  479. // OLE Server Proxy class declaration
  480. // Server Object    : TFlashProp
  481. // Help String      : Macromedia Flash Player Properties
  482. // Default Interface: IUnknown
  483. // Def. Intf. DISP? : No
  484. // Event   Interface: 
  485. // TypeFlags        : (2) CanCreate
  486. // *********************************************************************//
  487. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  488.   TFlashPropProperties= class;
  489. {$ENDIF}
  490.   TFlashProp = class(TOleServer)
  491.   private
  492.     FIntf: IUnknown;
  493. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  494.     FProps: TFlashPropProperties;
  495.     function GetServerProperties: TFlashPropProperties;
  496. {$ENDIF}
  497.     function GetDefaultInterface: IUnknown;
  498.   protected
  499.     procedure InitServerData; override;
  500.   public
  501.     constructor Create(AOwner: TComponent); override;
  502.     destructor  Destroy; override;
  503.     procedure Connect; override;
  504.     procedure ConnectTo(svrIntf: IUnknown);
  505.     procedure Disconnect; override;
  506.     property DefaultInterface: IUnknown read GetDefaultInterface;
  507.   published
  508. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  509.     property Server: TFlashPropProperties read GetServerProperties;
  510. {$ENDIF}
  511.   end;
  512. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  513. // *********************************************************************//
  514. // OLE Server Properties Proxy Class
  515. // Server Object    : TFlashProp
  516. // (This object is used by the IDE's Property Inspector to allow editing
  517. //  of the properties of this server)
  518. // *********************************************************************//
  519.  TFlashPropProperties = class(TPersistent)
  520.   private
  521.     FServer:    TFlashProp;
  522.     function    GetDefaultInterface: IUnknown;
  523.     constructor Create(AServer: TFlashProp);
  524.   protected
  525.   public
  526.     property DefaultInterface: IUnknown read GetDefaultInterface;
  527.   published
  528.   end;
  529. {$ENDIF}
  530. // *********************************************************************//
  531. // The Class CoFlashObjectInterface provides a Create and CreateRemote method to          
  532. // create instances of the default interface IFlashObjectInterface exposed by              
  533. // the CoClass FlashObjectInterface. The functions are intended to be used by             
  534. // clients wishing to automate the CoClass objects exposed by the         
  535. // server of this typelibrary.                                            
  536. // *********************************************************************//
  537.   CoFlashObjectInterface = class
  538.     class function Create: IFlashObjectInterface;
  539.     class function CreateRemote(const MachineName: string): IFlashObjectInterface;
  540.   end;
  541. // *********************************************************************//
  542. // OLE Server Proxy class declaration
  543. // Server Object    : TFlashObjectInterface
  544. // Help String      : IFlashObjectInterface Interface
  545. // Default Interface: IFlashObjectInterface
  546. // Def. Intf. DISP? : No
  547. // Event   Interface: 
  548. // TypeFlags        : (2) CanCreate
  549. // *********************************************************************//
  550. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  551.   TFlashObjectInterfaceProperties= class;
  552. {$ENDIF}
  553.   TFlashObjectInterface = class(TOleServer)
  554.   private
  555.     FIntf: IFlashObjectInterface;
  556. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  557.     FProps: TFlashObjectInterfaceProperties;
  558.     function GetServerProperties: TFlashObjectInterfaceProperties;
  559. {$ENDIF}
  560.     function GetDefaultInterface: IFlashObjectInterface;
  561.   protected
  562.     procedure InitServerData; override;
  563.   public
  564.     constructor Create(AOwner: TComponent); override;
  565.     destructor  Destroy; override;
  566.     procedure Connect; override;
  567.     procedure ConnectTo(svrIntf: IFlashObjectInterface);
  568.     procedure Disconnect; override;
  569.     function GetDispID(const bstrName: WideString; grfdex: LongWord; out pid: Integer): HResult;
  570.     function RemoteInvokeEx(id: Integer; lcid: LongWord; dwFlags: LongWord; var pdp: DISPPARAMS; 
  571.                             out pvarRes: OleVariant; out pei: EXCEPINFO; 
  572.                             const pspCaller: IServiceProvider; cvarRefArg: SYSUINT; 
  573.                             var rgiRefArg: SYSUINT; var rgvarRefArg: OleVariant): HResult;
  574.     function DeleteMemberByName(const bstrName: WideString; grfdex: LongWord): HResult;
  575.     function DeleteMemberByDispID(id: Integer): HResult;
  576.     function GetMemberProperties(id: Integer; grfdexFetch: LongWord; out pgrfdex: LongWord): HResult;
  577.     function GetMemberName(id: Integer; out pbstrName: WideString): HResult;
  578.     function GetNextDispID(grfdex: LongWord; id: Integer; out pid: Integer): HResult;
  579.     function GetNameSpaceParent(out ppunk: IUnknown): HResult;
  580.     property DefaultInterface: IFlashObjectInterface read GetDefaultInterface;
  581.   published
  582. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  583.     property Server: TFlashObjectInterfaceProperties read GetServerProperties;
  584. {$ENDIF}
  585.   end;
  586. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  587. // *********************************************************************//
  588. // OLE Server Properties Proxy Class
  589. // Server Object    : TFlashObjectInterface
  590. // (This object is used by the IDE's Property Inspector to allow editing
  591. //  of the properties of this server)
  592. // *********************************************************************//
  593.  TFlashObjectInterfaceProperties = class(TPersistent)
  594.   private
  595.     FServer:    TFlashObjectInterface;
  596.     function    GetDefaultInterface: IFlashObjectInterface;
  597.     constructor Create(AServer: TFlashObjectInterface);
  598.   protected
  599.   public
  600.     property DefaultInterface: IFlashObjectInterface read GetDefaultInterface;
  601.   published
  602.   end;
  603. {$ENDIF}
  604. procedure Register;
  605. resourcestring
  606.   dtlServerPage = 'ActiveX';
  607.   dtlOcxPage = 'ActiveX';
  608. implementation
  609. uses ComObj;
  610. procedure TShockwaveFlash.InitControlData;
  611. const
  612.   CEventDispIDs: array [0..3] of DWORD = (
  613.     $FFFFFD9F, $000007A6, $00000096, $000000C5);
  614.   CControlData: TControlData2 = (
  615.     ClassID: '{D27CDB6E-AE6D-11CF-96B8-444553540000}';
  616.     EventIID: '{D27CDB6D-AE6D-11CF-96B8-444553540000}';
  617.     EventCount: 4;
  618.     EventDispIDs: @CEventDispIDs;
  619.     LicenseKey: nil (*HR:$80004002*);
  620.     Flags: $00000000;
  621.     Version: 401);
  622. begin
  623.   ControlData := @CControlData;
  624.   TControlData2(CControlData).FirstEventOfs := Cardinal(@@FOnReadyStateChange) - Cardinal(Self);
  625. end;
  626. procedure TShockwaveFlash.CreateControl;
  627.   procedure DoCreate;
  628.   begin
  629.     FIntf := IUnknown(OleObject) as IShockwaveFlash;
  630.   end;
  631. begin
  632.   if FIntf = nil then DoCreate;
  633. end;
  634. function TShockwaveFlash.GetControlInterface: IShockwaveFlash;
  635. begin
  636.   CreateControl;
  637.   Result := FIntf;
  638. end;
  639. function TShockwaveFlash.Get_InlineData: IUnknown;
  640. begin
  641.     Result := DefaultInterface.InlineData;
  642. end;
  643. procedure TShockwaveFlash.Set_InlineData(const ppIUnknown: IUnknown);
  644. begin
  645.   DefaultInterface.Set_InlineData(ppIUnknown);
  646. end;
  647. procedure TShockwaveFlash.SetZoomRect(left: Integer; top: Integer; right: Integer; bottom: Integer);
  648. begin
  649.   DefaultInterface.SetZoomRect(left, top, right, bottom);
  650. end;
  651. procedure TShockwaveFlash.Zoom(factor: SYSINT);
  652. begin
  653.   DefaultInterface.Zoom(factor);
  654. end;
  655. procedure TShockwaveFlash.Pan(x: Integer; y: Integer; mode: SYSINT);
  656. begin
  657.   DefaultInterface.Pan(x, y, mode);
  658. end;
  659. procedure TShockwaveFlash.Play;
  660. begin
  661.   DefaultInterface.Play;
  662. end;
  663. procedure TShockwaveFlash.Stop;
  664. begin
  665.   DefaultInterface.Stop;
  666. end;
  667. procedure TShockwaveFlash.Back;
  668. begin
  669.   DefaultInterface.Back;
  670. end;
  671. procedure TShockwaveFlash.Forward;
  672. begin
  673.   DefaultInterface.Forward;
  674. end;
  675. procedure TShockwaveFlash.Rewind;
  676. begin
  677.   DefaultInterface.Rewind;
  678. end;
  679. procedure TShockwaveFlash.StopPlay;
  680. begin
  681.   DefaultInterface.StopPlay;
  682. end;
  683. procedure TShockwaveFlash.GotoFrame(FrameNum: Integer);
  684. begin
  685.   DefaultInterface.GotoFrame(FrameNum);
  686. end;
  687. function TShockwaveFlash.CurrentFrame: Integer;
  688. begin
  689.   Result := DefaultInterface.CurrentFrame;
  690. end;
  691. function TShockwaveFlash.IsPlaying: WordBool;
  692. begin
  693.   Result := DefaultInterface.IsPlaying;
  694. end;
  695. function TShockwaveFlash.PercentLoaded: Integer;
  696. begin
  697.   Result := DefaultInterface.PercentLoaded;
  698. end;
  699. function TShockwaveFlash.FrameLoaded(FrameNum: Integer): WordBool;
  700. begin
  701.   Result := DefaultInterface.FrameLoaded(FrameNum);
  702. end;
  703. function TShockwaveFlash.FlashVersion: Integer;
  704. begin
  705.   Result := DefaultInterface.FlashVersion;
  706. end;
  707. procedure TShockwaveFlash.LoadMovie(layer: SYSINT; const url: WideString);
  708. begin
  709.   DefaultInterface.LoadMovie(layer, url);
  710. end;
  711. procedure TShockwaveFlash.TGotoFrame(const target: WideString; FrameNum: Integer);
  712. begin
  713.   DefaultInterface.TGotoFrame(target, FrameNum);
  714. end;
  715. procedure TShockwaveFlash.TGotoLabel(const target: WideString; const label_: WideString);
  716. begin
  717.   DefaultInterface.TGotoLabel(target, label_);
  718. end;
  719. function TShockwaveFlash.TCurrentFrame(const target: WideString): Integer;
  720. begin
  721.   Result := DefaultInterface.TCurrentFrame(target);
  722. end;
  723. function TShockwaveFlash.TCurrentLabel(const target: WideString): WideString;
  724. begin
  725.   Result := DefaultInterface.TCurrentLabel(target);
  726. end;
  727. procedure TShockwaveFlash.TPlay(const target: WideString);
  728. begin
  729.   DefaultInterface.TPlay(target);
  730. end;
  731. procedure TShockwaveFlash.TStopPlay(const target: WideString);
  732. begin
  733.   DefaultInterface.TStopPlay(target);
  734. end;
  735. procedure TShockwaveFlash.SetVariable(const name: WideString; const value: WideString);
  736. begin
  737.   DefaultInterface.SetVariable(name, value);
  738. end;
  739. function TShockwaveFlash.GetVariable(const name: WideString): WideString;
  740. begin
  741.   Result := DefaultInterface.GetVariable(name);
  742. end;
  743. procedure TShockwaveFlash.TSetProperty(const target: WideString; property_: SYSINT; 
  744.                                        const value: WideString);
  745. begin
  746.   DefaultInterface.TSetProperty(target, property_, value);
  747. end;
  748. function TShockwaveFlash.TGetProperty(const target: WideString; property_: SYSINT): WideString;
  749. begin
  750.   Result := DefaultInterface.TGetProperty(target, property_);
  751. end;
  752. procedure TShockwaveFlash.TCallFrame(const target: WideString; FrameNum: SYSINT);
  753. begin
  754.   DefaultInterface.TCallFrame(target, FrameNum);
  755. end;
  756. procedure TShockwaveFlash.TCallLabel(const target: WideString; const label_: WideString);
  757. begin
  758.   DefaultInterface.TCallLabel(target, label_);
  759. end;
  760. procedure TShockwaveFlash.TSetPropertyNum(const target: WideString; property_: SYSINT; value: Double);
  761. begin
  762.   DefaultInterface.TSetPropertyNum(target, property_, value);
  763. end;
  764. function TShockwaveFlash.TGetPropertyNum(const target: WideString; property_: SYSINT): Double;
  765. begin
  766.   Result := DefaultInterface.TGetPropertyNum(target, property_);
  767. end;
  768. function TShockwaveFlash.TGetPropertyAsNumber(const target: WideString; property_: SYSINT): Double;
  769. begin
  770.   Result := DefaultInterface.TGetPropertyAsNumber(target, property_);
  771. end;
  772. procedure TShockwaveFlash.EnforceLocalSecurity;
  773. begin
  774.   DefaultInterface.EnforceLocalSecurity;
  775. end;
  776. function TShockwaveFlash.CallFunction(const request: WideString): WideString;
  777. begin
  778.   Result := DefaultInterface.CallFunction(request);
  779. end;
  780. procedure TShockwaveFlash.SetReturnValue(const returnValue: WideString);
  781. begin
  782.   DefaultInterface.SetReturnValue(returnValue);
  783. end;
  784. procedure TShockwaveFlash.DisableLocalSecurity;
  785. begin
  786.   DefaultInterface.DisableLocalSecurity;
  787. end;
  788. class function CoFlashProp.Create: IUnknown;
  789. begin
  790.   Result := CreateComObject(CLASS_FlashProp) as IUnknown;
  791. end;
  792. class function CoFlashProp.CreateRemote(const MachineName: string): IUnknown;
  793. begin
  794.   Result := CreateRemoteComObject(MachineName, CLASS_FlashProp) as IUnknown;
  795. end;
  796. procedure TFlashProp.InitServerData;
  797. const
  798.   CServerData: TServerData = (
  799.     ClassID:   '{1171A62F-05D2-11D1-83FC-00A0C9089C5A}';
  800.     IntfIID:   '{00000000-0000-0000-C000-000000000046}';
  801.     EventIID:  '';
  802.     LicenseKey: nil;
  803.     Version: 500);
  804. begin
  805.   ServerData := @CServerData;
  806. end;
  807. procedure TFlashProp.Connect;
  808. var
  809.   punk: IUnknown;
  810. begin
  811.   if FIntf = nil then
  812.   begin
  813.     punk := GetServer;
  814.     Fintf:= punk as IUnknown;
  815.   end;
  816. end;
  817. procedure TFlashProp.ConnectTo(svrIntf: IUnknown);
  818. begin
  819.   Disconnect;
  820.   FIntf := svrIntf;
  821. end;
  822. procedure TFlashProp.DisConnect;
  823. begin
  824.   if Fintf <> nil then
  825.   begin
  826.     FIntf := nil;
  827.   end;
  828. end;
  829. function TFlashProp.GetDefaultInterface: IUnknown;
  830. begin
  831.   if FIntf = nil then
  832.     Connect;
  833.   Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
  834.   Result := FIntf;
  835. end;
  836. constructor TFlashProp.Create(AOwner: TComponent);
  837. begin
  838.   inherited Create(AOwner);
  839. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  840.   FProps := TFlashPropProperties.Create(Self);
  841. {$ENDIF}
  842. end;
  843. destructor TFlashProp.Destroy;
  844. begin
  845. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  846.   FProps.Free;
  847. {$ENDIF}
  848.   inherited Destroy;
  849. end;
  850. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  851. function TFlashProp.GetServerProperties: TFlashPropProperties;
  852. begin
  853.   Result := FProps;
  854. end;
  855. {$ENDIF}
  856. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  857. constructor TFlashPropProperties.Create(AServer: TFlashProp);
  858. begin
  859.   inherited Create;
  860.   FServer := AServer;
  861. end;
  862. function TFlashPropProperties.GetDefaultInterface: IUnknown;
  863. begin
  864.   Result := FServer.DefaultInterface;
  865. end;
  866. {$ENDIF}
  867. class function CoFlashObjectInterface.Create: IFlashObjectInterface;
  868. begin
  869.   Result := CreateComObject(CLASS_FlashObjectInterface) as IFlashObjectInterface;
  870. end;
  871. class function CoFlashObjectInterface.CreateRemote(const MachineName: string): IFlashObjectInterface;
  872. begin
  873.   Result := CreateRemoteComObject(MachineName, CLASS_FlashObjectInterface) as IFlashObjectInterface;
  874. end;
  875. procedure TFlashObjectInterface.InitServerData;
  876. const
  877.   CServerData: TServerData = (
  878.     ClassID:   '{D27CDB71-AE6D-11CF-96B8-444553540000}';
  879.     IntfIID:   '{D27CDB72-AE6D-11CF-96B8-444553540000}';
  880.     EventIID:  '';
  881.     LicenseKey: nil;
  882.     Version: 500);
  883. begin
  884.   ServerData := @CServerData;
  885. end;
  886. procedure TFlashObjectInterface.Connect;
  887. var
  888.   punk: IUnknown;
  889. begin
  890.   if FIntf = nil then
  891.   begin
  892.     punk := GetServer;
  893.     Fintf:= punk as IFlashObjectInterface;
  894.   end;
  895. end;
  896. procedure TFlashObjectInterface.ConnectTo(svrIntf: IFlashObjectInterface);
  897. begin
  898.   Disconnect;
  899.   FIntf := svrIntf;
  900. end;
  901. procedure TFlashObjectInterface.DisConnect;
  902. begin
  903.   if Fintf <> nil then
  904.   begin
  905.     FIntf := nil;
  906.   end;
  907. end;
  908. function TFlashObjectInterface.GetDefaultInterface: IFlashObjectInterface;
  909. begin
  910.   if FIntf = nil then
  911.     Connect;
  912.   Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
  913.   Result := FIntf;
  914. end;
  915. constructor TFlashObjectInterface.Create(AOwner: TComponent);
  916. begin
  917.   inherited Create(AOwner);
  918. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  919.   FProps := TFlashObjectInterfaceProperties.Create(Self);
  920. {$ENDIF}
  921. end;
  922. destructor TFlashObjectInterface.Destroy;
  923. begin
  924. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  925.   FProps.Free;
  926. {$ENDIF}
  927.   inherited Destroy;
  928. end;
  929. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  930. function TFlashObjectInterface.GetServerProperties: TFlashObjectInterfaceProperties;
  931. begin
  932.   Result := FProps;
  933. end;
  934. {$ENDIF}
  935. function TFlashObjectInterface.GetDispID(const bstrName: WideString; grfdex: LongWord; 
  936.                                          out pid: Integer): HResult;
  937. begin
  938.   Result := DefaultInterface.GetDispID(bstrName, grfdex, pid);
  939. end;
  940. function TFlashObjectInterface.RemoteInvokeEx(id: Integer; lcid: LongWord; dwFlags: LongWord; 
  941.                                               var pdp: DISPPARAMS; out pvarRes: OleVariant; 
  942.                                               out pei: EXCEPINFO; 
  943.                                               const pspCaller: IServiceProvider; 
  944.                                               cvarRefArg: SYSUINT; var rgiRefArg: SYSUINT; 
  945.                                               var rgvarRefArg: OleVariant): HResult;
  946. begin
  947.   Result := DefaultInterface.RemoteInvokeEx(id, lcid, dwFlags, pdp, pvarRes, pei, pspCaller, 
  948.                                             cvarRefArg, rgiRefArg, rgvarRefArg);
  949. end;
  950. function TFlashObjectInterface.DeleteMemberByName(const bstrName: WideString; grfdex: LongWord): HResult;
  951. begin
  952.   Result := DefaultInterface.DeleteMemberByName(bstrName, grfdex);
  953. end;
  954. function TFlashObjectInterface.DeleteMemberByDispID(id: Integer): HResult;
  955. begin
  956.   Result := DefaultInterface.DeleteMemberByDispID(id);
  957. end;
  958. function TFlashObjectInterface.GetMemberProperties(id: Integer; grfdexFetch: LongWord; 
  959.                                                    out pgrfdex: LongWord): HResult;
  960. begin
  961.   Result := DefaultInterface.GetMemberProperties(id, grfdexFetch, pgrfdex);
  962. end;
  963. function TFlashObjectInterface.GetMemberName(id: Integer; out pbstrName: WideString): HResult;
  964. begin
  965.   Result := DefaultInterface.GetMemberName(id, pbstrName);
  966. end;
  967. function TFlashObjectInterface.GetNextDispID(grfdex: LongWord; id: Integer; out pid: Integer): HResult;
  968. begin
  969.   Result := DefaultInterface.GetNextDispID(grfdex, id, pid);
  970. end;
  971. function TFlashObjectInterface.GetNameSpaceParent(out ppunk: IUnknown): HResult;
  972. begin
  973.   Result := DefaultInterface.GetNameSpaceParent(ppunk);
  974. end;
  975. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  976. constructor TFlashObjectInterfaceProperties.Create(AServer: TFlashObjectInterface);
  977. begin
  978.   inherited Create;
  979.   FServer := AServer;
  980. end;
  981. function TFlashObjectInterfaceProperties.GetDefaultInterface: IFlashObjectInterface;
  982. begin
  983.   Result := FServer.DefaultInterface;
  984. end;
  985. {$ENDIF}
  986. procedure Register;
  987. begin
  988.   RegisterComponents(dtlOcxPage, [TShockwaveFlash]);
  989.   RegisterComponents(dtlServerPage, [TFlashProp, TFlashObjectInterface]);
  990. end;
  991. end.