Changeset 577
- Timestamp:
- Aug 5, 2008, 4:59:56 AM (16 years ago)
- Location:
- trunk/ab5.0/ablib/src/Classes
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/ablib/src/Classes/ActiveBasic/Windows/Registry.ab
r573 r577 35 35 rootkeyname As String 36 36 subkeyname As String 37 edited As Boolean 37 38 38 39 Virtual Sub ~RegistryKey( ) … … 43 44 'キーの名前を取得します。 44 45 Function Name( ) As String 45 Dim name = rootkeyname + "\" + subkeyname 46 Dim name As String 47 If IsNothing(This.subkeyname) Then 48 name = This.rootkeyname 49 Else 50 name = This.rootkeyname + "\" + This.subkeyname 51 End If 46 52 Return name 47 53 End Function … … 64 70 'キーを閉じ、キーの内容が変更されている場合はディスクへフラッシュします。 65 71 Sub Close( ) 66 This.Flush()72 If This.edited Then This.Flush() 67 73 RegCloseKey( This.handle ) 68 74 End Sub … … 70 76 '新しいサブキーを作成するか、または既存のサブキーを開きます。 71 77 Function CreateSubKey( subkey As String ) As RegistryKey 78 If IsNothing(subkey) Then Return Nothing 79 Dim buf = subkey 80 '末尾の\を除去 81 If buf.EndsWith( "\" ) Then 82 buf = buf.Remove( buf.Length - 1 ) 83 End If 84 '先頭の\を除去 85 If buf.StartsWith( "\" ) Then 86 buf = buf.Remove( 0, 1 ) 87 End If 88 72 89 Dim key As Detail._System_RegistryKey 73 90 key.Root( This.rootkey ) 74 key.SubKey( subkey ) 91 If IsNothing(This.subkeyname) Then 92 key.SubKey( buf ) 93 Else 94 key.SubKey( This.subkeyname + "\" + buf ) 95 End If 75 96 key.Create( ) 76 97 Return key … … 87 108 '指定したサブキーを削除します。文字列 subkey では、大文字と小文字は区別されません。 88 109 Sub DeleteSubKey ( subkey As String ) 110 If IsNothing( subkey ) Then Exit Sub 111 This.DeleteSubKey( subkey, True ) 89 112 End Sub 90 113 Sub DeleteSubKey ( subkey As String, throwOnMissingSubKey As Boolean ) 114 If IsNothing( subkey ) Then Exit Sub 115 Dim key = This.OpenSubKey(subkey) 116 If key.SubKeyCount <> 0 Then 117 key.Close() 118 If throwOnMissingSubKey Then 119 Throw New InvalidOperationException 120 Else 121 Exit Sub 122 End If 123 End If 124 RegDeleteKey( This.handle, ToTCStr(subkey) ) 125 This.edited = True 91 126 End Sub 92 127 93 128 'サブキーとその子サブキーを再帰的に削除します。文字列 subkey では、大文字と小文字は区別されません。 94 129 Sub DeleteSubKeyTree ( subkey As String ) 130 If IsNothing( subkey ) Then Exit Sub 131 Dim key = This.OpenSubKey( subkey ) 132 If key.SubKeyCount <> 0 Then 133 Dim list = key.GetSubKeyNames() 134 Dim s As String 135 Foreach s In list 136 key.DeleteSubKeyTree( s ) 137 Next 138 End If 139 This.DeleteSubKey( subkey, False ) 95 140 End Sub 96 141 97 142 '指定した値をこのキーから削除します。 98 143 Sub DeleteValue ( name As String ) 99 RegDeleteValue( This.handle, name ) 144 If IsNothing( name ) Then Exit Sub 145 This.DeleteValue( name, True ) 100 146 End Sub 101 147 Sub DeleteValue ( name As String, throwOnMissingValue As Boolean ) 148 If IsNothing( name ) Then Exit Sub 149 RegDeleteValue( This.handle, ToTCStr(name) ) 150 This.edited = True 102 151 End Sub 103 152 … … 172 221 '指定した名前に関連付けられた値のレジストリ データ型を取得します。 173 222 Function GetValueKind ( name As String ) As RegistryValueKind 223 If IsNothing( name ) Then Exit Sub 174 224 Dim dwType As DWord 175 225 If ERROR_SUCCESS <> RegQueryValueEx( This.handle, ToTCStr(name), 0, VarPtr(dwType), NULL, NULL ) Then … … 212 262 '指定したサブキーを取得します。 213 263 Function OpenSubKey ( name As String ) As RegistryKey 264 If IsNothing(name) Then Return Nothing 265 Dim buf = name 266 '末尾の\を除去 267 If buf.EndsWith( "\" ) Then 268 buf = buf.Remove( buf.Length - 1 ) 269 End If 270 '先頭の\を除去 271 If buf.StartsWith( "\" ) Then 272 buf = buf.Remove( 0, 1 ) 273 End If 274 214 275 Dim key As Detail._System_RegistryKey 215 276 key.Root( This.rootkey ) 216 key.SubKey( name ) 277 If IsNothing(This.subkeyname) Then 278 key.SubKey( buf ) 279 Else 280 key.SubKey( This.subkeyname + "\" + buf ) 281 End If 217 282 key.Open( ) 218 283 Return key … … 273 338 274 339 Sub SubKey( subkey As String ) 340 If IsNothing(subkey) Then Exit Sub 275 341 This.subkeyname = subkey 276 If This.subkeyname.EndsWith( "\" ) Then277 This.subkeyname.Remove( This.subkeyname.Length - 1 )278 End If279 342 End Sub 280 343 281 344 Sub Create() 282 RegCreateKeyEx( This.rootkey, ToTCStr(This.subkeyname), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ READ or KEY_WRITE, NULL, This.handle, NULL )345 RegCreateKeyEx( This.rootkey, ToTCStr(This.subkeyname), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, This.handle, NULL ) 283 346 End Sub 284 347 ' Function Create( permissionCheck As RegistryKeyPermissionCheck ) As RegistryKey … … 290 353 291 354 Sub Open() 292 RegOpenKeyEx( This.rootkey, ToTCStr(This.subkeyname), 0, KEY_ READ or KEY_WRITE, This.handle )355 RegOpenKeyEx( This.rootkey, ToTCStr(This.subkeyname), 0, KEY_ALL_ACCESS, This.handle ) 293 356 End Sub 294 357 ' Function Open( permissionCheck As RegistryKeyPermissionCheck ) As RegistryKey -
trunk/ab5.0/ablib/src/Classes/System/Collections/Generic/Queue.ab
r560 r577 5 5 6 6 Class Queue<T> 7 I nheritsICollection7 Implements IEnumerable<T>, IEnumerator<T>, System.Collections.ICollection 8 8 9 9 items As *T … … 45 45 @date 2008/07/20 46 46 */ 47 OverrideSub Clear ()47 Sub Clear () 48 48 This.count = 0 49 49 End Sub -
trunk/ab5.0/ablib/src/Classes/System/Collections/Generic/Stack.ab
r560 r577 5 5 6 6 Class Stack<T> 7 I nheritsICollection7 Implements IEnumerable<T>, IEnumerator<T>, System.Collections.ICollection 8 8 9 9 items As *T … … 45 45 @date 2008/07/20 46 46 */ 47 OverrideSub Clear ()47 Sub Clear () 48 48 This.count = 0 49 49 End Sub -
trunk/ab5.0/ablib/src/Classes/System/Collections/Generic/misc.ab
r557 r577 22 22 Public 23 23 ' Property 24 Virtual Function Count() As Long 25 End Function 26 Virtual Function IsReadOnly() As Boolean 27 End Function 24 Abstract Function Count() As Long 25 Abstract Function IsReadOnly() As Boolean 28 26 29 27 ' Methods 30 Virtual Sub Add ( item As T ) 31 End Sub 32 Virtual Sub Clear () 33 End Sub 34 Virtual Function Contains ( item As T ) As Boolean 35 End Function 36 Virtual Sub CopyTo (ByRef array As List<T>, arrayIndex As Long ) 37 End Sub 38 Virtual Function Remove ( item As T ) As Boolean 39 End Function 28 Abstract Sub Add ( item As T ) 29 Abstract Sub Clear () 30 ' Abstract Function Contains ( item As T ) As Boolean 31 ' Abstract Sub CopyTo (ByRef array As List<T>, arrayIndex As Long ) 32 Abstract Function Remove ( item As T ) As Boolean 40 33 End Class 41 34 … … 45 38 Public 46 39 ' Property 47 Virtual Sub Operator[] ( index As Long, item As T ) 48 End Sub 49 Virtual Function Operator[] ( index As Long ) As T 50 End Function 40 Abstract Sub Operator[] ( index As Long, item As T ) 41 Abstract Function Operator[] ( index As Long ) As T 42 51 43 ' Methods 52 Virtual Function Item ( index As Long ) As T 53 End Function 54 Virtual Function IndexOf ( item As T ) As Long 55 End Function 56 Virtual Sub Insert ( index As Long, item As T ) 57 End Sub 58 Virtual Sub RemoveAt( index As Long ) 59 End Sub 44 Abstract Function IndexOf ( item As T ) As Long 45 Abstract Sub Insert ( index As Long, item As T ) 46 Abstract Sub RemoveAt( index As Long ) 60 47 End Class 48 49 Namespace Details 50 51 Interface ICollection<T> 52 ' Property 53 Function Count() As Long 54 '/*Const*/ Function IsSynchronized() As Boolean 55 ' Function SyncRoot() As ... 56 End Interface 57 58 End Namespace 59 61 60 62 61 End Namespace -
trunk/ab5.0/ablib/src/Classes/System/Collections/misc.ab
r386 r577 10 10 Inherits IEnumerable 11 11 ' Properties 12 '/*Const*/Function Count() As Long12 Function Count() As Long 13 13 '/*Const*/ Function IsSynchronized() As Boolean 14 14 ' Function SyncRoot() As ... -
trunk/ab5.0/ablib/src/Classes/System/Security/AccessControl/misc.ab
r337 r577 3 3 Namespace AccessControl 4 4 5 Enum AccessControlActions 6 ' 書き込み専用アクセスを指定します。 7 Change 8 ' アクセス拒否を指定します。 9 None 10 ' 読み取り専用アクセスを指定します。 11 View 12 End Enum 13 14 Enum AccessControlModification 15 ' 指定した承認規則をアクセス制御リスト (ACL: Access Control List) に追加します。 16 Add 17 ' 指定した承認規則と同じセキュリティ識別子 (SID) とアクセス マスクを含む承認規則を ACL から削除します。 18 Remove 19 ' 指定した承認規則と同じ SID を含む承認規則を ACL から削除します。 20 RemoveAll 21 ' 指定した承認規則に完全に一致する承認規則を ACL から削除します。 22 RemoveSpecific 23 ' 指定した承認規則と同じ SID を含む承認規則を ACL から削除し、指定した承認規則を ACL に追加します。 24 Reset 25 ' すべての承認規則を ACL から削除し、指定した承認規則を ACL に追加します。 26 Set 27 End Enum 5 28 6 29 Enum AccessControlSections … … 13 36 End Enum 14 37 38 Enum AccessControlType 39 ' AccessRule オブジェクトを使用して、セキュリティで保護されたオブジェクトへのアクセスを許可します。 40 Allow 41 ' AccessRule オブジェクトを使用して、セキュリティで保護されたオブジェクトへのアクセスを拒否します。 42 Deny 43 End Enum 44 45 Enum CryptoKeyRights 46 ' キーのアクセス許可を変更します。 47 ChangePermissions 48 ' キーを削除します。 49 Delete 50 ' キーのフル コントロール。 51 FullControl 52 GenericAll 53 GenericExecute 54 GenericRead 55 GenericWrite 56 ' キーの属性を読み取ります。 57 ReadAttributes 58 ' キー データを読み取ります。 59 ReadData 60 ' キーの拡張属性を読み取ります。 61 ReadExtendedAttributes 62 ' キーのアクセス許可を読み取ります。 63 ReadPermissions 64 ' 同期用のキーを使用します。 65 Synchronize 66 ' キーの所有権を取得します。 67 TakeOwnership 68 ' キーの属性を書き込みます。 69 WriteAttributes 70 ' キー データを書き込みます。 71 WriteData 72 ' キーの拡張属性を書き込みます。 73 WriteExtendedAttributes 74 End Enum 75 76 Enum EventWaitHandleRights 77 ' 名前付きイベントに関連付けられたセキュリティと監査規則を変更する権限。 78 ChangePermissions 79 ' 名前付きイベントを削除する権限。 80 Delete 81 ' 名前付きイベントを完全に制御し、そのアクセス規則と監査規則を変更する権限。 82 FullControl 83 ' 名前付きイベントのシグナル状態を設定またはリセットする権限。 84 Modify 85 ' 名前付きイベントのアクセス規則と監査規則を開いてコピーする権限。 86 ReadPermissions 87 ' 名前付きイベントを待機する権限。 88 Synchronize 89 ' 名前付きイベントの所有者を変更する権限。 90 TakeOwnership 91 End Enum 92 93 Enum FileSystemRights 94 ' ファイルの末尾にデータを追加する権限を指定します。 95 AppendData 96 ' ファイルまたはフォルダに関連付けられたセキュリティ規則と監査規則を変更する権限を指定します。 97 ChangePermissions 98 99 ' フォルダを作成する権限を指定します。 100 'この権限には Synchronize 値が必要です。ファイルまたはフォルダの作成時に Synchronize 値を明示的に設定しない場合、Synchronize 値は自動的に設定されます。 101 CreateDirectories 102 103 ' ファイルを作成する権限を指定します。 104 'この権限には Synchronize 値が必要です。ファイルまたはフォルダの作成時に Synchronize 値を明示的に設定しない場合、Synchronize 値は自動的に設定されます。 105 CreateFiles 106 107 ' フォルダまたはファイルを削除する権限を指定します。 108 Delete 109 ' フォルダおよびそのフォルダ内に格納されているファイルを削除する権限を指定します。 110 DeleteSubdirectoriesAndFiles 111 ' アプリケーション ファイルを実行する権限を指定します。 112 ExecuteFile 113 ' フォルダまたはファイルに対してフル コントロールを行い、アクセス制御と監査規則を変更する権限を指定します。この値は、ファイルに対してどのような操作でも行うことができる権限を表します。この値は、この列挙体のすべての権限を組み合わせたものです。 114 FullControl 115 ' ディレクトリの内容を読み取る権限を指定します。 116 ListDirectory 117 ' 読み取り、書き込み、フォルダの内容の一覧表示、フォルダとファイルの削除、およびアプリケーション ファイルの実行を行う権限を指定します。この権限には、ReadAndExecute 権限、Write 権限、および Delete 権限が含まれます。 118 Modify 119 ' フォルダまたはファイルを読み取り専用として開いたり、コピーしたりする権限を指定します。この権限には、ReadData 権限、ReadExtendedAttributes 権限、ReadAttributes 権限、および ReadPermissions 権限が含まれます。 120 Read 121 ' フォルダまたはファイルを読み取り専用として開いたりコピーしたりする権限、およびアプリケーション ファイルを実行する権限を指定します。この権限には、Read 権限および ExecuteFile 権限が含まれます。 122 ReadAndExecute 123 ' フォルダまたはファイルのファイル システム属性を開いたり、コピーしたりする権限を指定します。たとえば、この値は、ファイルの作成日や変更日を表示する権限を指定します。これには、データ、拡張ファイル システム属性、またはアクセス規則や監査規則を読み取る権限は含まれません。 124 ReadAttributes 125 ' ファイルまたはフォルダを開いたり、コピーしたりする権限を指定します。これには、ファイル システム属性、拡張ファイル システム属性、またはアクセス規則や監査規則を読み取る権限は含まれません。 126 ReadData 127 ' フォルダまたはファイルの拡張ファイル システム属性を開いたり、コピーしたりする権限を指定します。たとえば、この値は、作成者や内容に関する情報を表示する権限を指定します。これには、データ、ファイル システム属性、またはアクセス規則や監査規則を読み取る権限は含まれません。 128 ReadExtendedAttributes 129 ' フォルダまたはファイルのアクセス規則や監査規則を開いたり、コピーしたりする権限を指定します。これには、データ、ファイル システム属性、および拡張ファイル システム属性を読み取る権限は含まれません。 130 ReadPermissions 131 132 ' ファイル ハンドルが I/O 操作の完了に同期するまでアプリケーションが待機できるかどうかを指定します。 133 'Synchronize 値は、アクセスを許可すると自動的に設定され、アクセスを拒否すると自動的に除外されます。 134 'ファイルまたはフォルダを作成する権限には、この値が必要です。この値は、ファイルの作成時に明示的に設定しなくても、自動的に設定されます。 135 Synchronize 136 137 ' フォルダまたはファイルの所有者を変更する権限を指定します。リソースの所有者は、そのリソースに対してフル アクセス権限を持ちます。 138 TakeOwnership 139 ' フォルダの内容を一覧表示し、そのフォルダに格納されているアプリケーションを実行する権限を指定します。 140 Traverse 141 ' フォルダおよびファイルを作成し、ファイルに対してデータの追加または削除を行う権限を指定します。この権限には、WriteData 権限、AppendData 権限、WriteExtendedAttributes 権限、および WriteAttributes 権限が含まれます。 142 Write 143 ' フォルダまたはファイルのファイル システム属性を開いたり、フォルダまたはファイルにファイル システム属性を書き込んだりする権限を指定します。これには、データ、拡張属性、またはアクセス規則や監査規則を書き込む権限は含まれません。 144 WriteAttributes 145 ' ファイルまたはフォルダを開いたり、ファイルまたはフォルダに書き込んだりする権限を指定します。これには、ファイル システム属性、拡張ファイル システム属性、またはアクセス規則や監査規則を開いたり書き込んだりする権限は含まれません。 146 WriteData 147 ' フォルダまたはファイルの拡張ファイル システム属性を開いたり、フォルダまたはファイルに拡張ファイル システム属性を書き込んだりする権限を指定します。これには、データ、属性、またはアクセス規則や監査規則を書き込む権限は含まれません。 148 WriteExtendedAttributes 149 End Enum 150 151 Enum MutexRights 152 '名前付きミューテックスに関連付けられたセキュリティと監査規則を変更する権限。 153 ChangePermissions 154 '名前付きミューテックスを削除する権限。 155 Delete 156 '名前付きミューテックスに対するフル コントロール、およびそのアクセス規則と監査規則を変更する権限。 157 FullControl 158 '名前付きミューテックスを解放する権限。 159 Modify 160 '名前付きミューテックスのアクセス規則と監査規則を開いてコピーする権限。 161 ReadPermissions 162 '名前付きミューテックスが解放されるまで待機する権限。 163 Synchronize 164 '名前付きミューテックスの所有者を変更する権限。 165 TakeOwnership 166 End Enum 167 168 Enum RegistryRights 169 'レジストリ キーに関連付けられたアクセス規則と監査規則を変更する権限。 170 ChangePermissions 171 'システムで使用するために予約されています。 172 CreateLink 173 'レジストリ キーのサブキーを作成する権限。 174 CreateSubKey 175 'レジストリ キーを削除する権限。 176 Delete 177 'レジストリ キーのサブキーをリストする権限。 178 EnumerateSubKeys 179 'ReadKey と同じです。 180 ExecuteKey 181 'レジストリ キーに対するフル コントロール、およびそのアクセス規則と監査規則を変更する権限。 182 FullControl 183 'レジストリ キーの変更通知を要求する権限。 184 Notify 185 'レジストリ キー内の名前/値ペアを照会する権限。 186 QueryValues 187 'レジストリ キー内の名前/値ペアの照会、変更通知の要求、そのサブキーの列挙、そのアクセス規則と監査規則の読み取りを行う権限。 188 ReadKey 189 'レジストリ キーのアクセス規則と監査規則を開いてコピーする権限。 190 ReadPermissions 191 'レジストリ キー内の名前/値ペアを作成、削除、または設定する権限。 192 SetValue 193 'レジストリ キーの所有者を変更する権限。 194 TakeOwnership 195 'レジストリ キー内の名前/値ペアの作成、削除、および設定、サブキーの作成または削除、変更通知の要求、そのサブキーの列挙、そのアクセス規則と監査規則の読み取りを行う権限。 196 WriteKey 197 End Enum 198 199 Enum SemaphoreRights 200 ' 名前付きセマフォに関連付けられたセキュリティと監査規則を変更する権限。 201 ChangePermissions 202 ' 名前付きセマフォを削除する権限。 203 Delete 204 ' 名前付きセマフォに対するフル コントロール、およびそのアクセス規則と監査規則を変更する権限。 205 FullControl 206 ' 名前付きセマフォを解放する権限。 207 Modify 208 ' 名前付きセマフォのアクセス規則と監査規則を開いてコピーする権限。 209 ReadPermissions 210 ' 名前付きセマフォを待機する権限。 211 Synchronize 212 ' 名前付きセマフォの所有者を変更する権限。 213 TakeOwnership 214 End Enum 15 215 16 216 End Namespace -
trunk/ab5.0/ablib/src/Classes/System/Threading/Thread.ab
r546 r577 1 1 'Thread.ab 2 2 3 Name Space System3 Namespace System 4 4 5 5 /*タイプ*/ … … 7 7 8 8 9 Name Space Threading9 Namespace Threading 10 10 11 11 /*列挙体*/ … … 483 483 484 484 End Namespace 'Detail 485 End Name Space 'Threading486 End Name Space 'System485 End Namespace 'Threading 486 End Namespace 'System 487 487 488 488 -
trunk/ab5.0/ablib/src/Classes/index.ab
r558 r577 7 7 #require "./ActiveBasic/Strings/Strings.ab" 8 8 #require "./ActiveBasic/Windows/CriticalSection.ab" 9 #require "./ActiveBasic/Windows/Registry.ab" 9 10 #require "./ActiveBasic/Windows/Windows.ab" 10 11 #require "./ActiveBasic/Windows/UI/WindowHandle.sbp"
Note:
See TracChangeset
for help on using the changeset viewer.