Changeset 142 for Include/basic/command.sbp
- Timestamp:
- Mar 9, 2007, 10:15:34 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Include/basic/command.sbp
r123 r142 5 5 #define _INC_COMMAND 6 6 7 #require <windows.sbp> 8 #require <Classes/System/Environment.ab> 7 9 8 10 Const _System_Type_SByte = 1 … … 33 35 Macro END() 34 36 _System_Call_Destructor_of_GlobalObject() 35 ExitProcess( 0)36 End Macro 37 38 Macro EXEC( lpFilePath As *Byte)(lpCmdLine As *Byte)39 ShellExecute(0, "open",lpFilePath,lpCmdLine,0,SW_SHOWNORMAL)37 ExitProcess(Environment.ExitCode) 38 End Macro 39 40 Macro EXEC(filePath As String)(cmdLine As String) 41 ShellExecute(0, "open", ToTCStr(filePath), ToTCStr(cmdLine), 0, SW_SHOWNORMAL) 40 42 End Macro 41 43 … … 52 54 Macro WRITE() 'dummy(PRINT_ToFile、PRINT_ToPromptを参照) 53 55 End Macro 54 55 56 56 57 '---------------- … … 58 59 '---------------- 59 60 60 Macro MSGBOX(hWnd As HWND, lpStr As String)(lpTitle As String, BoxType As DWord, ByRef retAns As DWord) 61 Function _System_MessageBox(hw As HWND, s As PCSTR, t As PCSTR, b As DWord) As DWord 62 Return MessageBoxA(hw, s, t, b) 63 End Function 64 65 Function _System_MessageBox(hw As HWND, s As PCWSTR, t As PCWSTR, b As DWord) As DWord 66 Return MessageBoxW(hw, s, t, b) 67 End Function 68 69 Macro MSGBOX(hwnd As HWND, str As String)(title As String, boxType As DWord, ByRef retAns As DWord) 61 70 If VarPtr(retAns) Then 62 retAns =MessageBox(hWnd,lpStr,lpTitle,BoxType)71 retAns = _System_MessageBox(hwnd, str, title, boxType) 63 72 Else 64 MessageBox(hWnd,lpStr,lpTitle,BoxType)73 _System_MessageBox(hwnd, str, title, boxType) 65 74 End If 66 75 End Macro 67 76 68 Macro WINDOW(ByRef hWnd As HWND, hOwner As HWND, x As Long, y As Long, nWidth As Long, nHeight As Long, lpTitle As String, dwStyle As DWord)(lpClass As String, id As HMENU, lpFunc As DWord, dwExStyle As DWord) 69 If VarPtr(hWnd) Then 70 hWnd=CreateWindowEx(dwExStyle,lpClass,lpTitle,dwStyle,x,y,nWidth,nHeight,hOwner,id,GetModuleHandle(0),NULL) 71 Else 72 CreateWindowEx(dwExStyle,lpClass,lpTitle,dwStyle,x,y,nWidth,nHeight,hOwner,id,GetModuleHandle(0),NULL) 77 Macro WINDOW(ByRef hwndRet As HWND, hOwner As HWND, x As Long, y As Long, width As Long, height As Long, title As String, dwStyle As DWord)(className As String, id As HMENU, lpFunc As DWord, dwExStyle As DWord) 78 Dim hwnd = CreateWindowEx(dwExStyle, ToTCStr(className), ToTCStr(title), dwStyle, x, y, width, height, hOwner, id, GetModuleHandle(0), 0) 79 If VarPtr(hwndRet) Then 80 hwndRet = hwnd 73 81 End If 74 82 End Macro … … 78 86 End Macro 79 87 80 Macro INSMENU(hMenu As HMENU, PosID As Long, flag As Long)( lpStringAs String, id As Long, hSubMenu As HMENU, state As Long)88 Macro INSMENU(hMenu As HMENU, PosID As Long, flag As Long)(str As String, id As Long, hSubMenu As HMENU, state As Long) 81 89 Dim mii As MENUITEMINFO 82 90 ZeroMemory(VarPtr(mii), Len(mii)) … … 90 98 .fType = MFT_STRING 91 99 .fMask = .fMask or MIIM_STATE or MIIM_ID 92 .dwTypeData = StrPtr(lpString)100 .dwTypeData = ToTCStr(str) 93 101 .wID = id 94 102 If hSubMenu Then … … 96 104 .hSubMenu = hSubMenu 97 105 End If 98 .fState =state106 .fState = state 99 107 End If 100 108 End With … … 108 116 109 117 Dim _System_hFile(255) As HANDLE 110 Macro OPEN( lpFileName As String, AccessFor As Long, FileNumber As Long)111 Dim dwAccess As Long112 Dim bAppend = 0 As Long113 Dim dwCreationDisposition As Long118 Macro OPEN(fileName As String, AccessFor As Long, FileNumber As Long) 119 Dim access As Long 120 Dim bAppend = False As Boolean 121 Dim creationDisposition As Long 114 122 115 123 FileNumber-- … … 117 125 Select Case AccessFor 118 126 Case 0 119 dwAccess=GENERIC_READ or GENERIC_WRITE120 dwCreationDisposition=OPEN_ALWAYS127 access = GENERIC_READ or GENERIC_WRITE 128 creationDisposition = OPEN_ALWAYS 121 129 Case 1 122 dwAccess=GENERIC_READ123 dwCreationDisposition=OPEN_EXISTING130 access = GENERIC_READ 131 creationDisposition = OPEN_EXISTING 124 132 Case 2 125 dwAccess=GENERIC_WRITE126 dwCreationDisposition=CREATE_ALWAYS133 access = GENERIC_WRITE 134 creationDisposition = CREATE_ALWAYS 127 135 Case 3 128 dwAccess=GENERIC_WRITE129 dwCreationDisposition=OPEN_ALWAYS130 bAppend =1136 access = GENERIC_WRITE 137 creationDisposition = OPEN_ALWAYS 138 bAppend = True 131 139 End Select 132 140 133 _System_hFile(FileNumber) =CreateFile(lpFileName,dwAccess,0,ByVal NULL,dwCreationDisposition,FILE_ATTRIBUTE_NORMAL,NULL)134 135 If bAppend Then SetFilePointer(_System_hFile(FileNumber), 0,NULL,FILE_END)141 _System_hFile(FileNumber) = CreateFile(ToTCStr(fileName), access, 0, ByVal 0, creationDisposition, FILE_ATTRIBUTE_NORMAL, 0) 142 143 If bAppend Then SetFilePointer(_System_hFile(FileNumber), 0, 0, FILE_END) 136 144 End Macro 137 145 … … 151 159 Dim i As Long ,i2 As Long, i3 As Long 152 160 Dim buffer As String 153 Dim temp[1] As Char161 Dim temp[1] As StrChar 154 162 Dim dwAccessBytes As DWord 155 163 Dim IsStr As Long … … 163 171 '次のデータをサーチ 164 172 Do 165 i2=ReadFile(_System_hFile[FileNumber],temp, 1,VarPtr(dwAccessBytes),ByVal 0)173 i2=ReadFile(_System_hFile[FileNumber],temp,SizeOf (StrChar),VarPtr(dwAccessBytes),ByVal 0) 166 174 If i2=0 or dwAccessBytes=0 Then 167 175 'error … … 177 185 i3++ 178 186 179 i2=ReadFile(_System_hFile[FileNumber],temp, 1,VarPtr(dwAccessBytes),ByVal 0)187 i2=ReadFile(_System_hFile[FileNumber],temp,SizeOf (StrChar),VarPtr(dwAccessBytes),ByVal 0) 180 188 If i2=0 or (i3=0 and dwAccessBytes=0) Then 181 189 'error … … 187 195 If dwAccessBytes=0 or temp[0]=0 or temp[0]=13 or temp[0]=10 or (IsStr=0 and temp[0]=Asc(",")) or (IsStr=0 and (temp[0]=32 or temp[0]=9) and _System_InputDataType[i]<>_System_Type_String) Then 188 196 If temp[0]=13 Then 189 ReadFile(_System_hFile[FileNumber],temp, 1,VarPtr(dwAccessBytes),ByVal 0)197 ReadFile(_System_hFile[FileNumber],temp,SizeOf (StrChar),VarPtr(dwAccessBytes),ByVal 0) 190 198 If Not(dwAccessBytes<>0 And temp[0]=10) Then 191 199 SetFilePointer(_System_hFile[FileNumber],-1,0,FILE_CURRENT) … … 240 248 pTempStr = arg As *String 241 249 pTempStr->ReSize(bufLen) 242 memcpy(pTempStr->Chars, buf.Chars, SizeOf ( Char) * pTempStr->Length)250 memcpy(pTempStr->Chars, buf.Chars, SizeOf (StrChar) * pTempStr->Length) 243 251 pTempStr->Chars[pTempStr->Length] = 0 244 252 End Select … … 249 257 FileNumber-- 250 258 251 WriteFile(_System_hFile(FileNumber), buf,Len(buf),VarPtr(dwAccessByte),ByVal NULL)259 WriteFile(_System_hFile(FileNumber), buf, Len(buf), VarPtr(dwAccessByte), ByVal 0) 252 260 End Sub 253 261 … … 257 265 Function _System_GetUsingFormat(UsingStr As String) As String 258 266 Dim i2 As Long, i3 As Long, i4 As Long, i5 As Long, ParmNum As Long 259 Dim temporary[255] As Char267 Dim temporary[255] As StrChar 260 268 Dim buffer As String 261 269 262 buffer =ZeroString(1024)263 264 ParmNum =0265 i2 =0270 buffer = ZeroString(1024) 271 272 ParmNum = 0 273 i2 = 0 266 274 While 1 267 275 While 1 … … 277 285 If UsingStr[i2]=Asc("#") Then 278 286 Dim dec As Long, sign As Long 279 Dim temp2 As * Char287 Dim temp2 As *StrChar 280 288 281 289 Dim length_num As Long, length_buf As Long … … 332 340 333 341 If dec > 0 Then 334 memcpy(VarPtr(buffer[i3]), temp2, SizeOf ( Char) * length_num)342 memcpy(VarPtr(buffer[i3]), temp2, SizeOf (StrChar) * length_num) 335 343 Else 336 344 buffer[i3] = &H30 … … 367 375 'lstrcat(StrPtr(buffer)+i3,_System_UsingStrData[ParmNum]) 368 376 memcpy(VarPtr(buffer[i3 + lstrlen(VarPtr(buffer[i3]))]), _System_UsingStrData[ParmNum], _ 369 SizeOf ( Char) * lstrlen(_System_UsingStrData[ParmNum]))377 SizeOf (StrChar) * lstrlen(_System_UsingStrData[ParmNum])) 370 378 i3 += lstrlen(_System_UsingStrData[ParmNum]) 371 379 ElseIf UsingStr[i2]=Asc("&") Then … … 385 393 _System_FillChar(VarPtr(buffer[i3]), i4, &h20) 'Asc(" ") 386 394 End If 387 memcpy(VarPtr(buffer[i3]), _System_UsingStrData[ParmNum], SizeOf ( Char) * i5)395 memcpy(VarPtr(buffer[i3]), _System_UsingStrData[ParmNum], SizeOf (StrChar) * i5) 388 396 i3 += i4 389 397 Else … … 423 431 RecodeNumber-- 424 432 425 SetFilePointer(_System_hFile(FileNumber), RecodeNumber*_System_FieldSize(FileNumber),NULL,FILE_BEGIN)426 lpBuffer =ZeroString(_System_FieldSize(FileNumber))427 ReadFile(_System_hFile(FileNumber), StrPtr(lpBuffer),_System_FieldSize(FileNumber),VarPtr(dwAccessByte),ByVal NULL)433 SetFilePointer(_System_hFile(FileNumber), SizeOf (StrChar) * RecodeNumber * _System_FieldSize(FileNumber), 0, FILE_BEGIN) 434 lpBuffer = ZeroString(_System_FieldSize(FileNumber)) 435 ReadFile(_System_hFile(FileNumber), StrPtr(lpBuffer), SizeOf (StrChar) * _System_FieldSize(FileNumber), VarPtr(dwAccessByte),ByVal 0) 428 436 If Not dwAccessByte=_System_FieldSize(FileNumber) Then 429 lpBuffer =Left$(lpBuffer,dwAccessByte)437 lpBuffer = Left$(lpBuffer, dwAccessByte) 430 438 End If 431 439 End Macro … … 436 444 RecodeNumber-- 437 445 438 SetFilePointer(_System_hFile(FileNumber), RecodeNumber*_System_FieldSize(FileNumber),NULL,FILE_BEGIN)439 WriteFile(_System_hFile(FileNumber), StrPtr(lpBuffer),_System_FieldSize(FileNumber),VarPtr(dwAccessByte),ByVal NULL)446 SetFilePointer(_System_hFile(FileNumber), SizeOf (StrChar) * RecodeNumber*_System_FieldSize(FileNumber), 0, FILE_BEGIN) 447 WriteFile(_System_hFile(FileNumber), StrPtr(lpBuffer),SizeOf (StrChar) * _System_FieldSize(FileNumber), VarPtr(dwAccessByte), ByVal 0) 440 448 End Macro 441 449 442 450 Macro CHDIR(path As String) 443 SetCurrentDirectory( path)451 SetCurrentDirectory(ToTCStr(path)) 444 452 End Macro 445 453 Macro MKDIR(path As String) 446 CreateDirectory( path, 0)454 CreateDirectory(ToTCStr(path), 0) 447 455 End Macro 448 456 Macro KILL(path As String) 449 DeleteFile( path)457 DeleteFile(ToTCStr(path)) 450 458 End Macro 451 459
Note:
See TracChangeset
for help on using the changeset viewer.