Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #pragma once
00016
00017 #include <WTypes.h>
00018 #include <string>
00019 #include <vector>
00020 #include "..\strbasic.h"
00021 #include "..\MaxHeap.h"
00022
00023 #ifndef ATSExport
00024 #define ATSExport __declspec( dllexport )
00025 #endif
00026
00028
00029
00030
00032
00034 typedef int ATSResult;
00036 typedef DWORD ATSStatus;
00038 typedef DWORD ATSOption;
00040 typedef LONG_PTR ATSClientPtr;
00042 typedef DWORD ATSVersion;
00044 typedef std::basic_string<MCHAR> ATSString;
00045
00047 #define IS_ATS_ERROR(res) ( ((res) < kATSResSuccess) ? true : false )
00048
00049 #define IS_ATS_SUCCESS(res) ( ((res) >= kATSResSuccess) ? true : false )
00050
00051 namespace ATS {
00052
00053
00054
00055
00057 const DWORD kATSAPIVersion = 200;
00058
00059
00060
00061
00065 const ATSResult kATSResErrorNotSupported = -2;
00067 const ATSResult kATSResError = -1;
00069 const ATSResult kATSResSuccess = 0;
00073 const ATSResult kATSResSuccessReload = 1;
00074
00075
00076
00077
00079 const ATSStatus kATSStatusUnknown = 0x00000000;
00081 const ATSStatus kATSStatusNotControlled = 0x00000001;
00083 const ATSStatus kATSStatusControlled = 0x00000002;
00085 const ATSStatus kATSStatusCheckedOut = 0x00000004;
00087 const ATSStatus kATSStatusCheckedOutOther = 0x00000008;
00089 const ATSStatus kATSStatusOutOfDate = 0x00000010;
00091 const ATSStatus kATSStatusDeleted = 0x00000020;
00093 const ATSStatus kATSStatusMissing = 0x00000040;
00095 const ATSStatus kATSStatusModified = 0x00000080;
00097 const ATSStatus kATSStatusHidden = 0x00000100;
00099 const ATSStatus kATSStatusShareLock = 0x00000200;
00100
00102 const ATSStatus kATSStatusCanCheckin = 0x00010000;
00104 const ATSStatus kATSStatusCanCheckout = 0x00020000;
00106 const ATSStatus kATSStatusCanUndoCheckout = 0x00040000;
00108 const ATSStatus kATSStatusCanGetLatest = 0x00080000;
00110 const ATSStatus kATSStatusCanAddFile = 0x00100000;
00112 const ATSStatus kATSStatusCanShowHistory = 0x00200000;
00114 const ATSStatus kATSStatusCanShowProperties = 0x00400000;
00115
00116
00117
00118
00120 const ATSStatus kATSStatusSelected = 0x0001;
00122 const ATSStatus kATSStatusChecked = 0x0002;
00124 const ATSStatus kATSStatusActive = 0x0004;
00126 const ATSStatus kATSStatusExcluded = 0x0008;
00128 const ATSStatus kATSStatusHide = 0x0010;
00129
00130
00131
00132
00134 const ATSOption kATSOptNone = 0x0000;
00136 const ATSOption kATSOptKeepCheckedOut = 0x0001;
00138 const ATSOption kATSOptReplaceLocalCopy = 0x0002;
00140 const ATSOption kATSOptSilent = 0x0004;
00142 const ATSOption kATSOptAssocChildren = 0x0008;
00144 const ATSOption kATSOptAssocParents = 0x0010;
00146 const ATSOption kATSOptAssocRecurse = 0x0020;
00147
00148
00149
00150
00152 const ATSOption kATSSupportNone = 0x0000;
00154 const ATSOption kATSSupportFileAssoc = 0x0001;
00156 const ATSOption kATSSupportExploreProvider = 0x0002;
00157
00158
00159
00160
00162 const ATSStatus kATSStatusTextNone = 0x0000;
00164 const ATSStatus kATSStatusTextInfo = 0x0001;
00166 const ATSStatus kATSStatusTextWarning = 0x0002;
00168 const ATSStatus kATSStatusTextError = 0x0004;
00170 const ATSStatus kATSStatusTextPrompt = 0x0008;
00171
00172
00173
00174
00176 const ATSOption kATSClientOptNone = 0x0000;
00178 const ATSOption kATSClientOptUIAlwaysOnTop = 0x0001;
00179
00180 };
00181
00183
00184
00185
00187
00189
00197 class ATSFileEntry : public MaxHeapOperators
00198 {
00199 public:
00201 ATSExport ATSFileEntry();
00203 ATSExport virtual ~ATSFileEntry();
00204
00206
00208 ATSExport virtual const MCHAR* GetFile();
00210
00212 ATSExport virtual void SetFile( const MCHAR *szFile );
00213
00215
00219 ATSExport virtual ATSStatus GetFlagsIn();
00221
00225 ATSExport virtual void SetFlagsIn( ATSStatus dwFlagsIn );
00226
00228
00231 ATSExport virtual ATSClientPtr GetClientPtr();
00233
00235 ATSExport virtual void SetClientPtr( ATSClientPtr pClientPtr );
00236
00238
00242 ATSExport virtual ATSStatus GetFlagsOut();
00244
00248 ATSExport virtual void SetFlagsOut( ATSStatus dwFlagsOut );
00249
00251
00254 ATSExport virtual UINT AddChild( ATSFileEntry *pEntry );
00256
00258 ATSExport virtual UINT NumChildren();
00260
00263 ATSExport virtual ATSFileEntry* GetChild( UINT iIndex );
00265
00268 ATSExport virtual bool RemoveChild( UINT iIndex );
00270
00272 ATSExport virtual bool RemoveAllChildren();
00273
00275
00281 ATSExport virtual UINT AddAttachment( const MCHAR *szFile, ATSFileEntry *pEntryParent = NULL, ATSStatus dwFlagsIn = ATS::kATSStatusActive, ATSClientPtr pClientPtr = NULL );
00283
00287 ATSExport virtual UINT AddAttachment( ATSFileEntry *pEntry );
00289
00291 ATSExport virtual UINT NumAttachments();
00293
00296 ATSExport virtual ATSFileEntry* GetAttachment( UINT iIndex );
00298
00301 ATSExport virtual bool RemoveAttachment( UINT iIndex );
00303
00305 ATSExport virtual bool RemoveAllAttachments();
00306
00308
00310 ATSExport virtual void SetParent( ATSFileEntry *pParent );
00312
00314 ATSExport virtual ATSFileEntry* GetParent();
00315
00316 protected:
00317 ATSString mFile;
00318 ATSStatus mFlagsIn;
00319 ATSStatus mFlagsOut;
00320 ATSClientPtr mClientPtr;
00321 std::vector< ATSFileEntry* > mChildren;
00322 ATSFileEntry* mpParent;
00323 std::vector< ATSFileEntry* > mAttachments;
00324 };
00325
00327
00328
00329
00331
00333
00338 class ATSFileList : public MaxHeapOperators
00339 {
00340 public:
00342 ATSExport ATSFileList();
00344 ATSExport virtual ~ATSFileList();
00345
00346
00347
00348
00349
00351
00357 ATSExport virtual ATSFileEntry* CreateEntry( const MCHAR *szFile, ATSFileEntry *pEntryParent = NULL, ATSStatus dwFlagsIn = ATS::kATSStatusActive, ATSClientPtr pClientPtr = NULL );
00359
00362 ATSExport virtual ATSFileEntry* CreateEntry( ATSFileEntry &atsFileEntry );
00364
00367 ATSExport virtual bool RemoveEntry( ATSFileEntry *pEntry );
00369
00371 ATSExport virtual UINT NumEntries();
00373
00376 ATSExport virtual bool RemoveEntry( UINT iIndex );
00378
00380 ATSExport virtual bool RemoveAll();
00382
00385 ATSExport virtual ATSFileEntry* GetFileEntry( UINT iIndex );
00386
00387
00388
00389
00390
00392
00400 ATSExport virtual UINT BuildActiveList( ATSStatus dwFlagsIn = ATS::kATSStatusActive, bool bDepthFirstTraversal = false );
00402
00405 ATSExport virtual UINT AddActiveEntry( ATSFileEntry *pEntry );
00407
00410 ATSExport virtual bool RemoveActiveEntry( ATSFileEntry *pEntry );
00412
00414 ATSExport virtual UINT NumActiveEntries();
00416
00419 ATSExport virtual ATSFileEntry* GetActiveFileEntry( UINT iIndex );
00420
00421
00422
00423
00424
00426
00428 ATSExport virtual UINT NumRootEntries();
00430
00433 ATSExport virtual ATSFileEntry* GetRootEntry( UINT iIndex );
00434
00435 protected:
00436 std::vector<ATSFileEntry*> mATSFiles;
00437 std::vector<ATSFileEntry*> mATSRoots;
00438 std::vector<ATSFileEntry*> mATSActiveFiles;
00439 };
00440
00442
00443
00444
00446
00448
00451 class IATSClientAccess : public MaxHeapOperators
00452 {
00453 public:
00455
00459 virtual bool SendStatusText( const MCHAR *szText, ATSStatus dwStatus = ATS::kATSStatusTextNone ) = 0;
00461
00463 virtual HWND GetParentWindow() = 0;
00465
00469 virtual DWORD GetUIColor( int iIndex ) = 0;
00471
00473 virtual bool SilentMode() = 0;
00475
00477 virtual ATSOption GetClientOptions() = 0;
00478 };
00479
00480
00482
00483
00484
00486
00488
00490 class ATSClientInfo : public MaxHeapOperators
00491 {
00492 public:
00494 ATSExport ATSClientInfo();
00496 ATSExport virtual ~ATSClientInfo();
00497
00499
00502 ATSExport virtual const MCHAR* GetClientName();
00504
00507 ATSExport virtual void SetClientName( const MCHAR *szClientName );
00508
00510
00513 ATSExport virtual const MCHAR* GetUserName();
00515
00517 ATSExport virtual void SetUserName( const MCHAR *szUserName );
00518
00520
00522 ATSExport virtual HWND GetParentWindow();
00524
00526 ATSExport virtual void SetParentWindow( HWND hHwnd );
00527
00529
00532 ATSExport virtual const MCHAR* GetProviderPluginPath();
00534
00537 ATSExport virtual void SetProviderPluginPath( const MCHAR *szPath );
00538
00540
00543 ATSExport virtual const MCHAR* GetConfigFilePath();
00545
00548 ATSExport virtual void SetConfigFilePath( const MCHAR *szPath );
00549
00551
00554 ATSExport virtual IATSClientAccess* GetIATSClientAccess();
00556
00559 ATSExport virtual void SetIATSClientAccess( IATSClientAccess* pIATSClientAccess );
00560
00561 protected:
00562 ATSString mClientName;
00563 ATSString mUserName;
00564 ATSString mPluginPath;
00565 ATSString mConfigPath;
00566 HWND mHwnd;
00567 IATSClientAccess* mpIATSClientAccess;
00568 };
00569
00571
00572
00573
00575
00577
00580 class ATSUserEntry : public MaxHeapOperators
00581 {
00582 public:
00584 ATSExport ATSUserEntry();
00586 ATSExport virtual ~ATSUserEntry();
00587
00589
00591 ATSExport virtual const MCHAR* GetUserName();
00593
00595 ATSExport virtual void SetUserName( const MCHAR *szUserName );
00596
00598
00600 ATSExport virtual const MCHAR* GetFirstName();
00602
00604 ATSExport virtual void SetFirstName( const MCHAR *szFirstName );
00605
00607
00609 ATSExport virtual const MCHAR* GetLastName();
00611
00613 ATSExport virtual void SetLastName( const MCHAR *szLastName );
00614
00616
00618 ATSExport virtual const MCHAR* GetEmail();
00620
00622 ATSExport virtual void SetEmail( const MCHAR *szEmail );
00623
00624 protected:
00625 ATSString mUserName;
00626 ATSString mFirstName;
00627 ATSString mLastName;
00628 ATSString mEmail;
00629 };
00630
00632
00633
00634
00636
00638
00641 class ATSUserList : public MaxHeapOperators
00642 {
00643 public:
00645 ATSExport ATSUserList();
00647 ATSExport virtual ~ATSUserList();
00648
00650
00653 ATSExport virtual ATSUserEntry* CreateEntry( const MCHAR *szUserName );
00655
00658 ATSExport virtual ATSUserEntry* CreateEntry( ATSUserEntry &atsUserEntry );
00660
00663 ATSExport virtual bool RemoveEntry( ATSUserEntry *pEntry );
00665
00667 ATSExport virtual UINT NumEntries();
00669
00672 ATSExport virtual bool RemoveEntry( UINT iIndex );
00674
00676 ATSExport virtual bool RemoveAll();
00678
00681 ATSExport virtual ATSUserEntry* GetUserEntry( UINT iIndex );
00682
00683 protected:
00684 std::vector<ATSUserEntry*> mATSUsers;
00685 };
00686
00688
00689
00690
00692
00694
00697 class ATSExploreProviderParams : public MaxHeapOperators
00698 {
00699 public:
00701 ATSExport ATSExploreProviderParams();
00703 ATSExport virtual ~ATSExploreProviderParams();
00704
00706
00709 ATSExport virtual const MCHAR* GetTitle();
00711
00714 ATSExport virtual void SetTitle( const MCHAR* szTitle );
00715
00717
00720 ATSExport virtual bool GetMultipleSelections();
00722
00725 ATSExport virtual void SetMultipleSelections( bool bMultipleSelections );
00726
00728
00731 ATSExport virtual bool GetDownloadFiles();
00733
00736 ATSExport virtual void SetDownloadFiles( bool bDownload );
00737
00739
00747 ATSExport virtual UINT AddFilter( const MCHAR* szName, const MCHAR* szExtensions );
00749
00751 ATSExport virtual UINT NumFilters();
00753
00756 ATSExport virtual const MCHAR* GetFilterName( UINT iIndex );
00758
00761 ATSExport virtual const MCHAR* GetFilterExtensions( UINT iIndex );
00762
00763 protected:
00764 ATSString mTitle;
00765 DWORD mState;
00766 std::vector< ATSString > mFilters;
00767 std::vector< ATSString > mExtensions;
00768 };
00769
00771
00772
00773
00775
00777
00782 class IATSProvider : public MaxHeapOperators
00783 {
00784 public:
00786 virtual ~IATSProvider() {}
00787
00789
00791 virtual const MCHAR* GetProviderName() = 0;
00792
00794
00799 virtual ATSOption GetSupportOptions() = 0;
00800
00802
00804 virtual bool IsInitialized() = 0;
00806
00808 virtual bool IsProjectOpen() = 0;
00809
00811
00820 virtual ATSResult Initialize( ATSClientInfo &atsClientInfo, ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00822
00826 virtual ATSResult Uninitialize( ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00827
00829
00838 virtual ATSResult OpenProject( MCHAR *szPath, const MCHAR *szComment, ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00840
00845 virtual ATSResult CloseProject( ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00846
00848
00850 virtual const MCHAR* GetWorkingFolder() = 0;
00851
00853
00858 virtual ATSResult SetWorkingFolder( const MCHAR *szWorkingFolder ) = 0;
00859
00861
00867 virtual ATSResult Checkin( ATSFileList &atsFileList, const MCHAR *szComment, ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00869
00875 virtual ATSResult Checkout( ATSFileList &atsFileList, const MCHAR *szComment, ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00877
00882 virtual ATSResult UndoCheckout( ATSFileList &atsFileList, ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00884
00889 virtual ATSResult GetLatest( ATSFileList &atsFileList, ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00891
00899 virtual ATSResult GetVersionRange( ATSFileList &atsFileList, ATSVersion &verMin, ATSVersion &verMax, ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00901
00907 virtual ATSResult GetVersion( ATSFileList &atsFileList, ATSVersion ver, ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00909
00915 virtual ATSResult AddFiles( ATSFileList &atsFileList, const MCHAR *szComment, ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00916
00918
00925 virtual ATSResult History( ATSFileList &atsFileList, ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00927
00933 virtual ATSResult Properties( ATSFileList &atsFileList, ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00934
00936
00943 virtual ATSResult GetFileStatus( ATSFileList &atsFileList, ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00944
00946
00956 virtual ATSResult GetLockedFileUserList( ATSFileList &atsFileList, ATSUserList &atsUserList, ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00957
00959
00969 virtual ATSResult ExploreProvider( ATSFileList &atsFileList, ATSExploreProviderParams &exploreParams, ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00970
00972
00976 virtual ATSResult ShowProviderOptions( ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00978
00982 virtual ATSResult LaunchProvider( ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00983
00985
00992 virtual ATSResult GetAssociatedFiles( ATSFileList &atsFileList, ATSOption atsOptions = ATS::kATSOptNone ) = 0;
00993
00995
00999 virtual bool IsATSMSSCCWrapper() = 0;
01000 };
01001