home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / Runimage / Delphi50 / Source / Vcl / MTSOBJ.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1999-08-11  |  2.5 KB  |  109 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Borland Delphi Visual Component Library         }
  5. {                                                       }
  6. {       Copyright (c) 1999 Inprise Corporation          }
  7. {                                                       }
  8. {*******************************************************}
  9.  
  10. unit Mtsobj;
  11.  
  12. {$H+,X+}
  13.  
  14. interface
  15.  
  16. uses Windows, ComObj, Mtx;
  17.  
  18. type
  19.   { TMtsAutoObject }
  20.  
  21.   TMtsAutoObject = class(TAutoObject, IObjectControl)
  22.   private
  23.     FObjectContext: IObjectContext;
  24.   protected
  25.     { IObjectControl }
  26.     procedure Activate; safecall;
  27.     procedure Deactivate; stdcall;
  28.     function CanBePooled: Bool; stdcall;
  29.  
  30.     procedure OnActivate; virtual;
  31.     procedure OnDeactivate; virtual;
  32.     property ObjectContext: IObjectContext read FObjectContext;
  33.   public
  34.     procedure SetComplete;
  35.     procedure SetAbort;
  36.     procedure EnableCommit;
  37.     procedure DisableCommit;
  38.     function IsInTransaction: Bool;
  39.     function IsSecurityEnabled: Bool;
  40.     function IsCallerInRole(const Role: WideString): Bool;
  41.   end;
  42.  
  43. implementation
  44.  
  45. procedure TMtsAutoObject.Activate;
  46. begin
  47.   FObjectContext := GetObjectContext;
  48.   OnActivate;
  49. end;
  50.  
  51. procedure TMtsAutoObject.OnActivate;
  52. begin
  53. end;
  54.  
  55. procedure TMtsAutoObject.Deactivate;
  56. begin
  57.   OnDeactivate;
  58.   FObjectContext := nil;
  59. end;
  60.  
  61. procedure TMtsAutoObject.OnDeactivate;
  62. begin
  63. end;
  64.  
  65. function TMtsAutoObject.CanBePooled: Bool;
  66. begin
  67.   Result := False;
  68. end;
  69.  
  70. procedure TMtsAutoObject.SetComplete;
  71. begin
  72.   if Assigned(FObjectContext) then FObjectContext.SetComplete;
  73. end;
  74.  
  75. procedure TMtsAutoObject.SetAbort;
  76. begin
  77.   if Assigned(FObjectContext) then FObjectContext.SetAbort;
  78. end;
  79.  
  80. procedure TMtsAutoObject.EnableCommit;
  81. begin
  82.   if Assigned(FObjectContext) then FObjectContext.EnableCommit;
  83. end;
  84.  
  85. procedure TMtsAutoObject.DisableCommit;
  86. begin
  87.   if Assigned(FObjectContext) then FObjectContext.DisableCommit;
  88. end;
  89.  
  90. function TMtsAutoObject.IsInTransaction: Bool;
  91. begin
  92.   if Assigned(FObjectContext) then Result := FObjectContext.IsInTransaction
  93.   else Result := False;
  94. end;
  95.  
  96. function TMtsAutoObject.IsSecurityEnabled: Bool;
  97. begin
  98.   if Assigned(FObjectContext) then Result := FObjectContext.IsSecurityEnabled
  99.   else Result := False;
  100. end;
  101.  
  102. function TMtsAutoObject.IsCallerInRole(const Role: WideString): Bool;
  103. begin
  104.   if Assigned(FObjectContext) then Result := FObjectContext.IsCallerInRole(Role)
  105.   else Result := False;
  106. end;
  107.  
  108. end.
  109.