Changeset 142
- Timestamp:
- Mar 9, 2007, 10:15:34 PM (18 years ago)
- Location:
- Include
- Files:
-
- 4 added
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
Include/Classes/System/Drawing/Font.ab
r137 r142 131 131 /*IN const*/ ByRef fontCollection As FontCollection) 132 132 #ifdef __STRING_IS_NOT_UNICODE 133 Dim name = _System_MultiByteToWideChar(familyName) 133 Dim oldAlloc = _System_AllocForConvertedString 134 _System_AllocForConvertedString = AddressOf (_System_malloc) 135 Dim name = ToWCStr(familyName) 134 136 Font(name, emSize, style, unit, fontCollection) 135 137 _System_free(name) 138 _System_AllocForConvertedString = oldAlloc 136 139 #else 137 140 Font(familyName.Chars, emSize, style, unit, fontCollection) … … 285 288 ((lf.fdwUnderline <> FALSE) And FontStyle.Underline)) As FontStyle 286 289 End Function 287 290 288 291 'Const Function SystemFontName() As String 289 292 -
Include/Classes/System/IO/DirectoryInfo.ab
r129 r142 18 18 19 19 Function Root() As DirectoryInfo 20 Dim dirInfo as DirectoryInfo(Path.GetPathRoot(FullPath))20 Dim dirInfo As DirectoryInfo(Path.GetPathRoot(FullPath)) 21 21 Return dirInfo 22 22 End Function … … 24 24 'Public Method 25 25 Sub Create() 26 CreateDirectory( FullPath, NULL)26 CreateDirectory(ToTCStr(FullPath), NULL) 27 27 End Sub 28 28 … … 31 31 32 32 Override Sub Delete() 33 RemoveDirectory( FullPath)33 RemoveDirectory(ToTCStr(FullPath)) 34 34 End Sub 35 35 … … 54 54 /* Function GetFiles() As Array 55 55 End Function*/ 56 56 57 57 /* Function GetFiles(searchPattern As String) As Array 58 58 End Function*/ 59 59 60 60 /* Function GetFiles(searchPattern As String, searchOption As SearchOption) As Array 61 61 End Function*/ … … 68 68 69 69 Sub MoveTo(destDirName As String) 70 If MoveFile( FullPath, destDirName) = FalseThen70 If MoveFile(ToTCStr(FullPath), ToTCStr(destDirName)) = FALSE Then 71 71 'Exception 72 72 End If -
Include/Classes/System/IO/DriveInfo.ab
r64 r142 35 35 36 36 Function DriveFormat() As String 37 Dim systemName As String 38 systemName.ReSize(15) 39 If GetVolumeInformation(m_DriveName, NULL, NULL, NULL, NULL, NULL, systemName, 16) Then 37 Dim systemName[15] As TCHAR 38 If GetVolumeInformation(m_DriveName, NULL, NULL, NULL, NULL, NULL, systemName, Len (systemName)) Then 40 39 Return systemName 41 40 Else … … 48 47 End Function 49 48 50 Function IsReady() As B OOL49 Function IsReady() As Boolean 51 50 If GetVolumeInformation(m_DriveName, NULL, NULL, NULL, NULL, NULL, NULL, NULL) Then 52 Return _System_TRUE51 Return True 53 52 Else 54 Return _System_FALSE53 Return False 55 54 End If 56 55 End Function … … 82 81 83 82 Function VolumeLabel() As String 84 Dim volumeName As String 85 volumeName.ReSize(63) 83 Dim volumeName[63] As TCAHR 86 84 If GetVolumeInformation(m_DriveName, volumeName, 64, NULL, NULL, NULL, NULL, NULL) Then 87 85 Return volumeName -
Include/Classes/System/IO/FileSystemInfo.ab
r130 r142 167 167 Virtual Sub Refresh() 168 168 Dim data As WIN32_FIND_DATA 169 Dim hFind As HANDLE 170 hFind = FindFirstFile(FullPath, data) 169 Dim hFind = FindFirstFile(ToTCStr(FullPath), data) 171 170 FindClose(hFind) 172 171 … … 179 178 Private 180 179 Function setFileTime() As Boolean 181 Dim hFile As HANDLE 182 hFile = CreateFile(FullPath, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0) 180 Dim hFile = CreateFile(ToTCStr(FullPath), GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0) 183 181 If hFile = INVALID_HANDLE_VALUE Then 184 182 setFileTime = False -
Include/Classes/System/IO/Path.ab
r136 r142 1 ' System/IO/Path.ab 2 3 #require <Classes/System/Environment.ab> 4 1 5 Class Path 2 6 Public … … 36 40 Return path.Remove(0, extPos) 37 41 End Function 38 42 39 43 Static Function ChangeExtension(path As String, extension As String) As String 40 44 Dim extPos As Long … … 49 53 Static Function HasExtension(ByRef path As String) As Boolean 50 54 If GetExtension(path) <> "" Then 51 Return _System_TRUE55 Return True 52 56 Else 53 Return _System_FALSE57 Return False 54 58 End If 55 59 End Function … … 74 78 75 79 Static Function GetTempPath() As String 76 GetTempPath.ReSize(__GetTempPath(0, 0) - 1) 77 __GetTempPath(GetTempPath.Length + 1, GetTempPath) 80 Dim size = GetTempPath(0, 0 81 Dim tempPath = _System_malloc(size)) 82 __GetTempPath(size, tempPath) 83 GetTempPath = tempPath 84 _System_free(tempPath) 78 85 End Function 79 86 80 87 Static Function GetFullPath(path As String) As String 81 Dim cd As String 82 Dim dirSepChar As String(Chr$(DirectorySeparatorChar)) 83 If IsPathRooted(path) Then Return path 84 85 cd.ReSize = GetCurrentDirectory(0, 0) - 1 86 GetCurrentDirectory(cd.Length + 1, cd) 87 Return cd + dirSepChar + path 88 If IsPathRooted(path) Then 89 Return path 90 Else 91 Return Environment.CurrentDirectory + Chr$(DirectorySeparatorChar) + path 92 End If 88 93 End Function 89 94 … … 108 113 End Function 109 114 110 Static Function IsPathRooted(path As String) As B OOL115 Static Function IsPathRooted(path As String) As Boolean 111 116 Dim volSepChar As String(Chr$(VolumeSeparatorChar)) 112 117 If path.IndexOf(volSepChar, 1, 1) = 1 Then 113 Return _System_TRUE118 Return True 114 119 Else 115 Return _System_FALSE120 Return False 116 121 End If 117 122 End Function -
Include/Classes/System/String.ab
r139 r142 10 10 #else 11 11 TypeDef StrChar = WCHAR 12 #ifndef UNICODE 13 #define __STRING_UNICODE_WINDOWS_ANSI 14 #endif 12 15 #endif 13 16 … … 494 497 Dim i As Long 495 498 For i = 0 To ELM(.m_Length) 496 If .Chars[i] = .oldChar Then497 .Chars[i] = .newChar499 If .Chars[i] = oldChar Then 500 .Chars[i] = newChar 498 501 End If 499 502 Next … … 558 561 559 562 Static Function Copy(s As String) As String 560 Copy.Re size(s.m_Length)563 Copy.ReSize(s.m_Length) 561 564 memcpy(Copy.Chars, This.Chars, SizeOf (StrChar) * m_Length) 562 565 End Function -
Include/Classes/System/index.ab
r106 r142 4 4 #require "String.ab" 5 5 #require "TimeSpan.ab" 6 #require "OperatingSystem.ab" 7 #require "Version.ab" 8 #require "Environment.ab" -
Include/api_console.sbp
r141 r142 3 3 #ifndef _INC_CONSOLE 4 4 #define _INC_CONSOLE 5 6 #ifdef UNICODE 7 Const _FuncName_PeekConsoleInput = "PeekConsoleInputW" 8 Const _FuncName_ReadConsoleInput = "ReadConsoleInputW" 9 Const _FuncName_WriteConsoleInput = "WriteConsoleInputW" 10 Const _FuncName_ReadConsoleOutput = "ReadConsoleOutputW" 11 Const _FuncName_WriteConsoleOutput = "WriteConsoleOutputW" 12 Const _FuncName_ReadConsoleOutputCharacter = "ReadConsoleOutputCharacterW" 13 Const _FuncName_WriteConsoleOutputCharacter = "WriteConsoleOutputCharacterW" 14 Const _FuncName_FillConsoleOutputCharacter = "FillConsoleOutputCharacterW" 15 Const _FuncName_ScrollConsoleScreenBuffer = "ScrollConsoleScreenBufferW" 16 Const _FuncName_GetConsoleTitle = "GetConsoleTitleW" 17 Const _FuncName_SetConsoleTitle = "SetConsoleTitleW" 18 Const _FuncName_ReadConsole = "ReadConsoleW" 19 Const _FuncName_WriteConsole = "WriteConsoleW" 20 #else 21 Const _FuncName_PeekConsoleInput = "PeekConsoleInputA" 22 Const _FuncName_ReadConsoleInput = "ReadConsoleInputA" 23 Const _FuncName_WriteConsoleInput = "WriteConsoleInputA" 24 Const _FuncName_ReadConsoleOutput = "ReadConsoleOutputA" 25 Const _FuncName_WriteConsoleOutput = "WriteConsoleOutputA" 26 Const _FuncName_ReadConsoleOutputCharacter = "ReadConsoleOutputCharacterA" 27 Const _FuncName_WriteConsoleOutputCharacter = "WriteConsoleOutputCharacterA" 28 Const _FuncName_FillConsoleOutputCharacter = "FillConsoleOutputCharacterA" 29 Const _FuncName_ScrollConsoleScreenBuffer = "ScrollConsoleScreenBufferA" 30 Const _FuncName_GetConsoleTitle = "GetConsoleTitleA" 31 Const _FuncName_SetConsoleTitle = "SetConsoleTitleA" 32 Const _FuncName_ReadConsole = "ReadConsoleA" 33 Const _FuncName_WriteConsole = "WriteConsoleA" 34 #endif 5 35 6 36 Type COORD … … 153 183 Const ENABLE_WRAP_AT_EOL_OUTPUT = &H0002 154 184 155 Declare Function PeekConsoleInput Lib "kernel32" Alias "PeekConsoleInputA"(hConsoleInput As HANDLE, ByRef lpBuffer As INPUT_RECORD, nLength As DWord, ByRef lpNumberOfEventsRead As DWord) As BOOL156 Declare Function ReadConsoleInput Lib "kernel32" Alias "ReadConsoleInputA"(hConsoleInput As HANDLE, ByRef lpBuffer As INPUT_RECORD, nLength As DWord, ByRef lpNumberOfEventsRead As DWord) As BOOL157 Declare Function WriteConsoleInput Lib "kernel32" Alias "WriteConsoleInputA"(hConsoleInput As HANDLE, ByRef lpBuffer As INPUT_RECORD, nLength As DWord, ByRef lpNumberOfEventsWritten As DWord) As BOOL158 Declare Function ReadConsoleOutput Lib "kernel32" Alias "ReadConsoleOutputA"(hConsoleOutput As HANDLE, lpBuffer As *CHAR_INFO, ByRef dwBufferSize As COORD, ByRef dwBufferCoord As COORD, ByRef lpReadRegion As SMALL_RECT) As BOOL159 Declare Function WriteConsoleOutput Lib "kernel32" Alias "WriteConsoleOutputA"(hConsoleOutput As HANDLE, lpBuffer As *CHAR_INFO, ByRef dwBufferSize As COORD, ByRef dwBufferCoord As COORD, ByRef lpWriteRegion As SMALL_RECT) As BOOL160 Declare Function ReadConsoleOutputCharacter Lib "kernel32" Alias "ReadConsoleOutputCharacterA"(hConsoleOutput As HANDLE, lpCharacter As LPSTR, nLength As DWord, ByRef dwReadCoord As COORD, ByRef lpNumberOfCharsRead As DWord) As BOOL185 Declare Function PeekConsoleInput Lib "kernel32" Alias _FuncName_PeekConsoleInput (hConsoleInput As HANDLE, ByRef lpBuffer As INPUT_RECORD, nLength As DWord, ByRef lpNumberOfEventsRead As DWord) As BOOL 186 Declare Function ReadConsoleInput Lib "kernel32" Alias _FuncName_ReadConsoleInput (hConsoleInput As HANDLE, ByRef lpBuffer As INPUT_RECORD, nLength As DWord, ByRef lpNumberOfEventsRead As DWord) As BOOL 187 Declare Function WriteConsoleInput Lib "kernel32" Alias _FuncName_WriteConsoleInput (hConsoleInput As HANDLE, ByRef lpBuffer As INPUT_RECORD, nLength As DWord, ByRef lpNumberOfEventsWritten As DWord) As BOOL 188 Declare Function ReadConsoleOutput Lib "kernel32" Alias _FuncName_ReadConsoleOutput (hConsoleOutput As HANDLE, lpBuffer As *CHAR_INFO, ByRef dwBufferSize As COORD, ByRef dwBufferCoord As COORD, ByRef lpReadRegion As SMALL_RECT) As BOOL 189 Declare Function WriteConsoleOutput Lib "kernel32" Alias _FuncName_WriteConsoleOutput (hConsoleOutput As HANDLE, lpBuffer As *CHAR_INFO, ByRef dwBufferSize As COORD, ByRef dwBufferCoord As COORD, ByRef lpWriteRegion As SMALL_RECT) As BOOL 190 Declare Function ReadConsoleOutputCharacter Lib "kernel32" Alias _FuncName_ReadConsoleOutputCharacter (hConsoleOutput As HANDLE, lpCharacter As LPSTR, nLength As DWord, ByRef dwReadCoord As COORD, ByRef lpNumberOfCharsRead As DWord) As BOOL 161 191 Declare Function ReadConsoleOutputAttribute Lib "kernel32" (hConsoleOutput As HANDLE, lpAttribute As *Word, nLength As DWord, ByRef dwReadCoord As COORD, ByRef lpNumberOfAttrsRead As DWord) As BOOL 162 Declare Function WriteConsoleOutputCharacter Lib "kernel32" Alias "WriteConsoleOutputCharacterA"(hConsoleOutput As HANDLE, lpCharacter As LPSTR, nLength As DWord, ByRef dwWriteCoord As COORD, ByRef lpNumberOfCharsWritten As DWord) As BOOL192 Declare Function WriteConsoleOutputCharacter Lib "kernel32" Alias _FuncName_WriteConsoleOutputCharacter (hConsoleOutput As HANDLE, lpCharacter As LPSTR, nLength As DWord, ByRef dwWriteCoord As COORD, ByRef lpNumberOfCharsWritten As DWord) As BOOL 163 193 Declare Function WriteConsoleOutputAttribute Lib "kernel32" (hConsoleOutput As HANDLE, lpAttribute As *Word, nLength As DWord, ByRef dwWriteCoord As COORD, ByRef lpNumberOfAttrsWritten As DWord) As BOOL 164 Declare Function FillConsoleOutputCharacter Lib "kernel32" Alias "FillConsoleOutputCharacterA"(hConsoleOutput As HANDLE, cCharacter As Char, nLength As DWord, ByRef dwWriteCoord As COORD, ByRef lpNumberOfCharsWritten As DWord) As BOOL194 Declare Function FillConsoleOutputCharacter Lib "kernel32" Alias _FuncName_FillConsoleOutputCharacter (hConsoleOutput As HANDLE, cCharacter As Char, nLength As DWord, ByRef dwWriteCoord As COORD, ByRef lpNumberOfCharsWritten As DWord) As BOOL 165 195 Declare Function FillConsoleOutputAttribute Lib "kernel32" (hConsoleOutput As HANDLE, wAttribute As Word, nLength As DWord, ByRef dwWriteCoord As COORD, ByRef lpNumberOfAttrsWritten As DWord) As BOOL 166 196 Declare Function GetConsoleMode Lib "kernel32" (hConsoleHandle As HANDLE, ByRef lpMode As DWord) As BOOL … … 176 206 Declare Function SetConsoleCursorPosition Lib "kernel32" (hConsoleOutput As HANDLE, dwCursorPosition As DWord) As BOOL 177 207 Declare Function SetConsoleCursorInfo Lib "kernel32" (hConsoleOutput As HANDLE, ByRef lpConsoleCursorInfo As CONSOLE_CURSOR_INFO) As BOOL 178 Declare Function ScrollConsoleScreenBuffer Lib "kernel32" Alias "ScrollConsoleScreenBufferA"(hConsoleOutput As HANDLE, ByRef lpScrollRectangle As SMALL_RECT, lpClipRectangle As *SMALL_RECT, ByRef dwDestinationOrigin As COORD, lpFill As *CHAR_INFO) As BOOL208 Declare Function ScrollConsoleScreenBuffer Lib "kernel32" Alias _FuncName_ScrollConsoleScreenBuffer (hConsoleOutput As HANDLE, ByRef lpScrollRectangle As SMALL_RECT, lpClipRectangle As *SMALL_RECT, ByRef dwDestinationOrigin As COORD, lpFill As *CHAR_INFO) As BOOL 179 209 Declare Function SetConsoleWindowInfo Lib "kernel32" (hConsoleOutput As HANDLE, bAbsolute As BOOL, ByRef lpConsoleWindow As SMALL_RECT) As BOOL 180 210 Declare Function SetConsoleTextAttribute Lib "kernel32" (hConsoleOutput As HANDLE, wAttributes As Word) As BOOL … … 183 213 Declare Function AllocConsole Lib "kernel32" () As BOOL 184 214 Declare Function FreeConsole Lib "kernel32" () As BOOL 185 Declare Function GetConsoleTitle Lib "kernel32" Alias "GetConsoleTitleA"(lpConsoleTitle As LPSTR, nSize As DWord) As DWord186 Declare Function SetConsoleTitle Lib "kernel32" Alias "SetConsoleTitleA"(lpConsoleTitle As LPSTR) As BOOL187 Declare Function ReadConsole Lib "kernel32" Alias "ReadConsoleA"(hConsoleInput As HANDLE, lpBuffer As VoidPtr, nNumberOfCharsToRead As DWord, ByRef lpNumberOfCharsRead As DWord, lpReserved As VoidPtr) As BOOL188 Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA"(hConsoleOutput As HANDLE, lpBuffer As VoidPtr, nNumberOfCharsToWrite As DWord, ByRef lpNumberOfCharsWritten As DWord, lpReserved As VoidPtr) As BOOL215 Declare Function GetConsoleTitle Lib "kernel32" Alias _FuncName_GetConsoleTitle (lpConsoleTitle As LPSTR, nSize As DWord) As DWord 216 Declare Function SetConsoleTitle Lib "kernel32" Alias _FuncName_SetConsoleTitle (lpConsoleTitle As LPSTR) As BOOL 217 Declare Function ReadConsole Lib "kernel32" Alias _FuncName_ReadConsole (hConsoleInput As HANDLE, lpBuffer As VoidPtr, nNumberOfCharsToRead As DWord, ByRef lpNumberOfCharsRead As DWord, lpReserved As VoidPtr) As BOOL 218 Declare Function WriteConsole Lib "kernel32" Alias _FuncName_WriteConsole (hConsoleOutput As HANDLE, lpBuffer As VoidPtr, nNumberOfCharsToWrite As DWord, ByRef lpNumberOfCharsWritten As DWord, lpReserved As VoidPtr) As BOOL 189 219 190 220 Const CONSOLE_TEXTMODE_BUFFER = 1 -
Include/api_psapi.sbp
r141 r142 85 85 #endif 86 86 87 Declare Function GetProcessMemoryInfo Lib "psapi" (Process As HANDLE, ppsmemCounters As PPROCESS_MEMORY_COUNTERS, cb As DWord) 87 Declare Function GetProcessMemoryInfo Lib "psapi" (Process As HANDLE, ppsmemCounters As PPROCESS_MEMORY_COUNTERS, cb As DWord) As BOOL 88 88 89 89 Type PERFORMANCE_INFORMATION … … 107 107 TypeDef PPERFORMACE_INFORMATION = *PERFORMANCE_INFORMATION 108 108 109 Declare Function GetPerformanceInfo Lib "psapi" (pPerformanceInformation As PPERFORMACE_INFORMATION, cb As DWord) 109 Declare Function GetPerformanceInfo Lib "psapi" (pPerformanceInformation As PPERFORMACE_INFORMATION, cb As DWord) As BOOL 110 110 111 111 Type ENUM_PAGE_FILE_INFORMATION -
Include/api_system.sbp
r141 r142 875 875 Const VER_PLATFORM_WIN32_WINDOWS = 1 876 876 Const VER_PLATFORM_WIN32_NT = 2 877 Const VER_PLATFORM_WIN32_CE = 3 877 878 Type OSVERSIONINFOW 878 879 dwOSVersionInfoSize As DWord -
Include/basic.sbp
r121 r142 31 31 'Single 32 32 'Double 33 34 TypeDef Int16 = Integer 35 TypeDef Int8 = SByte 33 36 34 37 TypeDef BOOL = Long -
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 -
Include/basic/dos_console.sbp
r123 r142 20 20 Dim i As Long, i2 As Long, i3 As Long 21 21 Dim buf As String 22 Dim Input Str[1023] As Byte22 Dim InputBuf[1023] As TCHAR 23 23 Dim dwAccessBytes As DWord 24 24 … … 28 28 29 29 '入力 30 ReadConsole(_System_hConsoleIn, Input Str, Len(InputStr), dwAccessBytes, 0)31 If Input Str[dwAccessBytes-2] = &h0d And InputStr[dwAccessBytes-1] = &h0a Then32 Input Str[dwAccessBytes-2] = 030 ReadConsole(_System_hConsoleIn, InputBuf, Len(InputBuf), dwAccessBytes, 0) 31 If InputBuf[dwAccessBytes-2] = &h0d And InputBuf[dwAccessBytes-1] = &h0a Then 32 InputBuf[dwAccessBytes-2] = 0 33 33 End If 34 Dim InputStr As String(InputBuf) 34 35 35 36 'データを変数に格納 … … 59 60 i++ 60 61 If _System_InputDataPtr[i]=0 And InputStr[i2]=comma Then 61 PRINT_ToPrompt( "入力データの個数が多すぎます"+Chr$(10))62 PRINT_ToPrompt(Ex"入力データの個数が多すぎます\r\n") 62 63 Goto *InputReStart 63 64 ElseIf InputStr[i2]=0 Then 64 65 If _System_InputDataPtr[i]<>0 Then 65 PRINT_ToPrompt( "入力データの個数が足りません"+Chr$(10))66 PRINT_ToPrompt(Ex"入力データの個数が足りません\r\n") 66 67 Goto *InputReStart 67 68 Else … … 80 81 Sub PRINT_ToPrompt(buf As String) 81 82 Dim dwAccessBytes As DWord 83 #ifdef __STRING_UNICODE_WINDOWS_ANSI 84 ' Debug 85 Dim oldAlloc = _System_AllocForConvertedString 86 _System_AllocForConvertedString = AddressOf (_System_malloc) 87 Dim pszOut As PCSTR 88 Dim len = GetStr(buf, pszOut) 89 _System_AllocForConvertedString = oldAlloc 90 WriteConsole(_System_hConsoleOut, pszOut, len, dwAccessBytes, 0) 91 _System_free(pszOut) 92 #else 82 93 WriteConsole(_System_hConsoleOut, buf.Chars, buf.Length, dwAccessBytes, 0) 94 #endif 83 95 End Sub 84 96 -
Include/basic/function.sbp
r137 r142 344 344 '------------ 345 345 346 Function Asc(buf As * Char) AsChar346 Function Asc(buf As *StrChar) As StrChar 347 347 Asc = buf[0] 348 348 End Function 349 349 350 Function Chr$(code As Char) As String350 Function Chr$(code As StrChar) As String 351 351 Chr$ = ZeroString(1) 352 352 Chr$[0] = code 353 353 End Function 354 354 355 #if defUNICODE355 #ifndef __STRING_IS_NOT_UNICODE 356 356 Function AscW(s As *WCHAR) As UCSCHAR 357 357 If s.Length = 0 Then … … 487 487 488 488 Mid$=ZeroString(ReadLength) 489 memcpy(StrPtr(Mid$), VarPtr(buf [StartPos]), SizeOf (Char) * ReadLength)489 memcpy(StrPtr(Mid$), VarPtr(buf.Chars[StartPos]), SizeOf (Char) * ReadLength) 490 490 End Function 491 491 … … 515 515 If i>length Then 516 516 Right$=ZeroString(length) 517 memcpy(StrPtr(Right$), VarPtr(buf [i-length]), SizeOf (Char) * length)517 memcpy(StrPtr(Right$), VarPtr(buf.Chars[i-length]), SizeOf (Char) * length) 518 518 Else 519 519 Right$=buf … … 691 691 Return MakeStr(buffer) 692 692 End Function 693 Function Str$(value As LONG_PTR) As String693 Function Str$(value As Int64) As String 694 694 Dim temp[255] As Char 695 #ifdef _WIN64696 695 _sntprintf(temp, Len (temp) \ SizeOf (Char), "%I64d", value) 697 #else698 _sntprintf(temp, Len (temp) \ SizeOf (Char), "%d", value)699 #endif700 696 Str$ = temp 701 697 End Function … … 881 877 882 878 Function Lof(FileNum As Long) As Long 883 Lof =GetFileSize(_System_hFile(FileNum-1),NULL)879 Lof = GetFileSize(_System_hFile(FileNum-1), 0) 884 880 End Function 885 881 … … 1059 1055 End Function 1060 1056 1057 '-------- 1058 ' 文字列関数その2 1059 '-------- 1061 1060 Function _System_IsSurrogatePair(wcHigh As WCHAR, wcLow As WCHAR) As Boolean 1062 1061 If &hD800 <= wcHigh And wcHigh < &hDC00 Then … … 1068 1067 End Function 1069 1068 1070 Function _System_IsDoubleUnitChar(lead As Char, trail As Char) As Boolean 1071 #ifdef UNICODE 1069 Function _System_IsDoubleUnitChar(lead As WCHAR, trail As WCHAR) As Boolean 1072 1070 Return _System_IsSurrogatePair(lead, trail) 1073 #else 1071 End Function 1072 1073 Function _System_IsDoubleUnitChar(lead As SByte, trail As SByte) As Boolean 1074 1074 Return IsDBCSLeadByte(lead) <> FALSE 1075 #endif 1076 End Function 1077 1078 Sub _System_FillChar(p As *Char, n As SIZE_T, c As Char) 1075 End Function 1076 1077 Sub _System_FillChar(p As PWSTR, n As SIZE_T, c As WCHAR) 1079 1078 Dim i As SIZE_T 1080 1079 For i = 0 To ELM(n) … … 1083 1082 End Sub 1084 1083 1085 Function _System_ASCII_IsUpper(c As Char) As Boolean 1084 Sub _System_FillChar(p As PSTR, n As SIZE_T, c As SByte) 1085 Dim i As SIZE_T 1086 For i = 0 To ELM(n) 1087 p[i] = c 1088 Next 1089 End Sub 1090 1091 Function _System_ASCII_IsUpper(c As WCHAR) As Boolean 1086 1092 Return c As DWord - &h41 < 26 ' &h41 = Asc("A") 1087 1093 End Function 1088 1094 1095 Function _System_ASCII_IsUpper(c As SByte) As Boolean 1096 Return _System_ASCII_IsUpper(c As Byte As WCHAR) 1097 End Function 1098 1099 Function _System_ASCII_IsLower(c As WCHAR) As Boolean 1100 Return c As DWord - &h61 < 26 ' &h61 = Asc("a") 1101 End Function 1102 1089 1103 Function _System_ASCII_IsLower(c As Char) As Boolean 1090 Return c As DWord - &h61 < 26 ' &h61 = Asc("a")1091 End Function 1092 1093 Function _System_ASCII_ToLower(c As Char) As Char1104 Return _System_ASCII_IsLower(c As Byte As WCHAR) 1105 End Function 1106 1107 Function _System_ASCII_ToLower(c As WCHAR) As WCHAR 1094 1108 If _System_ASCII_IsUpper(c) Then 1095 1109 Return c Or &h20 … … 1097 1111 Return c 1098 1112 End If 1113 End Function 1114 1115 Function _System_ASCII_ToLower(c As SByte) As SByte 1116 Return _System_ASCII_ToLower(c As Byte As WCHAR) As Byte As SByte 1099 1117 End Function 1100 1118 … … 1107 1125 End Function 1108 1126 1109 Function _System_WideCharToMultiByte(s As PCWSTR) As PSTR 1110 Return _System_WideCharToMultiByte(s, lstrlenW(s) + 1, 0) 1111 End Function 1112 1113 Function _System_WideCharToMultiByte(s As PCWSTR, size As Long) As PSTR 1114 Return _System_WideCharToMultiByte(s, size, 0) 1115 End Function 1116 1117 Function _System_WideCharToMultiByte(ws As PCWSTR, size As Long, flag As DWord) As PSTR 1118 Dim sizeMBS = WideCharToMultiByte(CP_THREAD_ACP, flag, s, size, 0, 0, 0, 0) 1119 Dim mbs = _System_malloc(sizeMBS) As PSTR 1120 WideCharToMultiByte(CP_THREAD_ACP, flag, s, size, mbs, sizeMBS, 0, 0) 1121 Return mbs 1122 End Function 1123 1124 Function _System_MultiByteToWideChar(s As PCSTR) As PWSTR 1125 Return _System_MultiByteToWideChar(s, lstrlenA(s) + 1, 0) 1126 End Function 1127 1128 Function _System_MultiByteToWideChar(s As PCSTR, size As Long) As PWSTR 1129 Return _System_MultiByteToWideChar(s, size, 0) 1130 End Function 1131 1132 Function _System_MultiByteToWideChar(s As PCSTR, size As Long, flag As DWord) As PWSTR 1133 Dim sizeMBS = MultiByteToWideChar(CP_THREAD_ACP, flag, s, size, 0, 0) 1134 Dim mbs = _System_malloc(SizeOf (WCHAR) * sizeMBS) As PWSTR 1135 MultiByteToWideChar(CP_THREAD_ACP, flag, s, size, mbs, sizeMBS) 1136 Return mbs 1137 End Function 1127 Function _System_ASCII_ToUpper(c As SByte) As SByte 1128 Return _System_ASCII_ToUpper(c As Byte As WCHAR) As Byte As SByte 1129 End Function 1130 1138 1131 1139 1132 Function _System_StrCmp(s1 As PCSTR, s2 As PCSTR) As Long … … 1158 1151 _System_StrCmp = s1[i] - s2[i] 1159 1152 End Function 1153 1160 1154 #endif '_INC_FUNCTION -
Include/basic/prompt.sbp
r137 r142 8 8 #require <api_imm.sbp> 9 9 #require <Classes/System/Math.ab> 10 11 Function _PromptSys_GetTextExtentPoint32(hdc As HDC, psz As PCSTR, cb As Long, ByRef Size As SIZE) As Long 12 _PromptSys_GetTextExtentPoint32 = GetTextExtentPoint32A(hdc, psz, cb, Size) 13 End Function 14 15 Function _PromptSys_GetTextExtentPoint32(hdc As HDC, psz As PCWSTR, cb As Long, ByRef Size As SIZE) As Long 16 _PromptSys_GetTextExtentPoint32 = GetTextExtentPoint32W(hdc, psz, cb, Size) 17 End Function 18 19 Function _PromptSys_TextOut(hdc As HDC, x As Long, y As Long, psz As PCSTR, cb As Long) As Long 20 _PromptSys_TextOut = TextOutA(hdc, x, y, psz, cb) 21 End Function 22 23 Function _PromptSys_TextOut(hdc As HDC, x As Long, y As Long, psz As PCWSTR, cb As Long) As Long 24 _PromptSys_TextOut = TextOutW(hdc, x, y, psz, cb) 25 End Function 26 27 Function _PromptSys_ImmGetCompositionString(himc As HIMC, index As DWord, pBuf As PSTR, bufLen As DWord) As Long 28 _PromptSys_ImmGetCompositionString = ImmGetCompositionStringA(himc, index, pBuf, bufLen) 29 End Function 30 31 Function _PromptSys_ImmGetCompositionString(himc As HIMC, index As DWord, pBuf As PWSTR, bufLen As DWord) As Long 32 _PromptSys_ImmGetCompositionString = ImmGetCompositionStringW(himc, index, pBuf, bufLen) 33 End Function 10 34 11 35 Dim _PromptSys_hWnd As HWND … … 22 46 Type _PromptSys_LineInformation 23 47 Length As Long 24 Text As * Char48 Text As *StrChar 25 49 CharInfo As *_PromptSys_CharacterInformation 26 50 End Type … … 29 53 Dim _PromptSys_hFont As HFONT 30 54 Dim _PromptSys_FontSize As SIZE 31 Dim _PromptSys_InputStr[255] As Char55 Dim _PromptSys_InputStr[255] As StrChar 32 56 Dim _PromptSys_InputLen As Long 33 57 Dim _PromptSys_KeyChar As Byte … … 38 62 Dim _PromptSys_SectionOfBufferAccess As CRITICAL_SECTION 39 63 64 Dim _System_OSVersionInfo As OSVERSIONINFO 40 65 41 66 _PromptSys_InputLen = -1 … … 48 73 49 74 _PromptSys_hInitFinish = CreateEvent(0, FALSE, FALSE, 0) 50 CreateThread(0, 0, AddressOf(PromptMain) As LPTHREAD_START_ROUTINE, 0, 0, _PromptSys_dwThreadID) 75 Dim _PromptSys_hThread As HANDLE 76 _PromptSys_hThread = CreateThread(0, 0, AddressOf(PromptMain) As LPTHREAD_START_ROUTINE, 0, 0, _PromptSys_dwThreadID) 77 If _PromptSys_hThread = 0 Then 78 Debug 79 ExitProcess(1) 80 End If 51 81 WaitForSingleObject(_PromptSys_hInitFinish, INFINITE) 52 82 … … 68 98 Next 69 99 _PromptSys_TextLine[100].Length = 0 70 _PromptSys_TextLine[100].Text = _System_calloc(SizeOf ( Char) * 255)100 _PromptSys_TextLine[100].Text = _System_calloc(SizeOf (StrChar) * 255) 71 101 _PromptSys_TextLine[100].CharInfo = _System_calloc(SizeOf (_PromptSys_CharacterInformation) * 255) 72 102 _PromptSys_CurPos.y-- … … 83 113 Dim sz As SIZE 84 114 i3 = _PromptSys_TextLine[i].Length 85 GetTextExtentPoint32(hDC, _PromptSys_TextLine[i].Text, i3, sz)115 _PromptSys_GetTextExtentPoint32(hDC, _PromptSys_TextLine[i].Text, i3, sz) 86 116 87 117 BitBlt(hDC,_ … … 106 136 End If 107 137 With _PromptSys_FontSize 108 TextOut(hDC, currentLineCharInfo[i2].StartPos, i * .cy, VarPtr(_PromptSys_TextLine[i].Text[i2]), tempLen)138 _PromptSys_TextOut(hDC, currentLineCharInfo[i2].StartPos, i * .cy, VarPtr(_PromptSys_TextLine[i].Text[i2]) As *StrChar, tempLen) 109 139 End With 110 140 i2 += tempLen … … 127 157 Dim doubleUnitChar = False As Boolean 128 158 'Addition 129 Dim i2 = 0 As Long, i3 As Long ' : Debug159 Dim i2 = 0 As Long, i3 As Long 130 160 For i2 = 0 To ELM(bufLen) 131 161 If buf[i2] = &h0d Then 'CR \r … … 158 188 charLen = 1 159 189 EndIf 160 GetTextExtentPoint32(hdc, VarPtr(buf.Chars[i2]), charLen, sz)190 _PromptSys_GetTextExtentPoint32(hdc, VarPtr(buf.Chars[i2]) As *StrChar, charLen, sz) 161 191 currentLineCharInfo[.x + 1].StartPos = currentLineCharInfo[.x].StartPos + sz.cx 162 192 /* … … 305 335 TempStr = Ex"\r\n" 306 336 ElseIf wParam = &H16 Then 337 /* 307 338 'Paste Command(Use Clippboard) 308 339 OpenClipboard(hwnd) … … 324 355 GlobalUnlock(hGlobal) 325 356 CloseClipboard() 357 */ 326 358 Else 327 359 _PromptSys_InputStr[_PromptSys_InputLen] = wParam As Byte … … 337 369 End If 338 370 End Sub 371 372 Function _PromptWnd_GetCompositionStringW(himc As HIMC, ByRef rpsz As PWSTR) As Long 373 Dim size = ImmGetCompositionStringW(himc, GCS_RESULTSTR, 0, 0) 'sizeはバイト単位 374 rpsz = _System_malloc(size) As PTSTR 375 If rpsz = 0 Then 376 'Debug 377 Return 0 378 End If 379 Return ImmGetCompositionStringW(himc, GCS_RESULTSTR, rpsz, size) 380 End Function 381 382 Function _PromptWnd_GetCompositionStringA(himc As HIMC, ByRef rpsz As PSTR) As Long 383 Dim size = ImmGetCompositionStringA(himc, GCS_RESULTSTR, 0, 0) 'sizeはバイト単位 384 rpsz = _System_malloc(size) As PTSTR 385 If rpsz = 0 Then 386 'Debug 387 Return 0 388 End If 389 Return ImmGetCompositionStringA(himc, GCS_RESULTSTR, rpsz, size) 390 End Function 339 391 340 392 Function _PromptWnd_OnImeCompostion(hwnd As HWND, wp As WPARAM, lp As LPARAM) As LRESULT … … 345 397 Return 0 346 398 End If 347 Dim size = ImmGetCompositionString(himc, GCS_RESULTSTR, 0, 0) 'sizeはバイト単位 348 Dim str = _System_malloc(size) As PTSTR 349 If str = 0 Then 350 'Debug 351 Return 0 352 End If 353 ImmGetCompositionString(himc, GCS_RESULTSTR, str, size) 399 Dim tempStr As String 400 Dim str As *StrChar 401 #ifdef __STIRNG_IS_NOT_UNICODE 402 Dim size = _PromptWnd_GetCompositionStringA(himc, str) 403 tempStr.Assign(str, size) 404 #else 405 With _System_OSVersionInfo 406 ' GetCompositionStringW is not implimented in Windows 95 407 If .dwMajorVersion = 4 And .dwMinorVersion = 0 And .dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then 408 Dim strA As PCSTR 409 Dim sizeA = _PromptWnd_GetCompositionStringA(himc, strA) 410 tempStr.AssignFromMultiByte(strA, sizeA) 411 Else 412 Dim size = _PromptWnd_GetCompositionStringW(himc, str) 413 tempStr.Assign(str, size \ SizeOf (WCHAR)) 414 End If 415 End With 416 #endif 354 417 ImmReleaseContext(hwnd, himc) 355 356 memcpy(VarPtr(_PromptSys_InputStr[_PromptSys_InputLen]), str, size)357 _PromptSys_InputLen += size \ SizeOf (Char)358 359 Dim tempStr As String(str, size \ SizeOf (Char))360 418 _System_free(str) 361 419 362 SendMessage(hwnd, WM_KILLFOCUS, 0, 0) 420 memcpy(VarPtr(_PromptSys_InputStr[_PromptSys_InputLen]), tempStr.Chars, SizeOf (StrChar) * tempStr.Length) 421 _PromptSys_InputLen += tempStr.Length 422 423 SendMessage(hwnd, WM_KILLFOCUS, 0, 0) : Debug 363 424 PRINT_ToPrompt(tempStr) 364 425 SendMessage(hwnd, WM_SETFOCUS, 0, 0) … … 371 432 372 433 Function PromptMain(dwData As Long) As Long 434 GetVersionEx(_System_OSVersionInfo) 435 373 436 Dim i As Long 374 375 437 'Allocate 376 438 For i = 0 To 100 377 439 With _PromptSys_TextLine[i] 378 440 .Length = 0 379 .Text = _System_calloc(SizeOf ( Char) * 255)441 .Text = _System_calloc(SizeOf (StrChar) * 255) 380 442 .CharInfo = _System_calloc(SizeOf (_PromptSys_CharacterInformation) * 255) 381 443 End With … … 515 577 '---------------------------------------------- 516 578 Sub INPUT_FromPrompt(ShowStr As String) 517 Dim i As Long ,i2 As Long, i3 As Long579 Dim i As Long, i2 As Long, i3 As Long 518 580 Dim buf As String 519 581 -
Include/com/bstring.ab
r138 r142 11 11 12 12 Sub BString(len As DWord) 13 bs = SysAllocStringLen( len)13 bs = SysAllocStringLen(0, len) 14 14 End Sub 15 15 … … 40 40 End Sub 41 41 42 Sub ~BString() 43 Clear() 44 End Sub 45 42 46 Sub Operator =(ByRef bstr As BString) 43 ~BString()47 Clear() 44 48 BString(bstr) 45 49 End Sub 46 50 47 Sub ~BString()51 Sub Operator =(s As LPCOLESTR) 48 52 Clear() 53 BString(s) 54 End Sub 55 56 Sub Assign(ByRef bstr As BString) 57 Clear() 58 BString(bstr) 59 End Sub 60 61 Sub Assign(s As LPCOLESTR) 62 Clear() 63 BString(s) 64 End Sub 65 66 Sub AssignFromBStr(bstr As BSTR) 67 Clear() 68 BString(bstr) 49 69 End Sub 50 70 … … 74 94 End Function 75 95 76 Const Function Operator [](i As SIZE_T) 96 Const Function Operator [](i As SIZE_T) As OLECHAR 77 97 #ifdef _DEBUG 78 98 If i > Length Then -
Include/system/string.sbp
r119 r142 15 15 End Function 16 16 17 Function MakeStr(pBuf As *Char) As String17 Function MakeStr(pBuf As PSTR) As String 18 18 Dim temp As String(pBuf) 19 19 Return temp 20 20 End Function 21 21 22 Function MakeStr(pBuf As PWSTR) As String 23 Dim temp As String(pBuf) 24 Return temp 25 End Function 26 27 Dim _System_AllocForConvertedString As *Function(size As SIZE_T) As VoidPtr 28 _System_AllocForConvertedString = AddressOf (GC_malloc_atomic) 29 30 Function GetStr(psz As PSTR, ByRef wcs As PWSTR) As SIZE_T 31 If psz <> 0 Then 32 Return GetStr(psz, lstrlenA(psz), wcs) 33 Else 34 Return 0 35 End If 36 End Function 37 38 Function GetStr(psz As PSTR, len As SIZE_T, ByRef wcs As PWSTR) As SIZE_T 39 If psz = 0 Then Return 0 40 Dim sizeWCS = MultiByteToWideChar(CP_THREAD_ACP, 0, psz, len, 0, 0) 41 wcs = _System_AllocForConvertedString(SizeOf (WCHAR) * sizeWCS) As PWSTR 42 GetWCStr = MultiByteToWideChar(CP_THREAD_ACP, 0, psz, len, wcs, sizeWCS) 43 wcs[GetWCStr] = 0 44 End Function 45 46 Function GetStr(psz As PWSTR, ByRef wcs As PWSTR) As SIZE_T 47 wcs = psz 48 If psz <> 0 Then 49 Return lstrlenW(psz) 50 Else 51 Return 0 52 End If 53 End Function 54 55 Function GetStr(psz As PWSTR, len As SIZE_T, ByRef wcs As PWSTR) As SIZE_T 56 wcs = psz 57 If psz <> 0 Then 58 Return lstrlenW(psz) 59 Else 60 Return 0 61 End If 62 End Function 63 64 Function GetStr(psz As PWSTR, ByRef mbs As PSTR) As SIZE_T 65 If psz = 0 Then 66 Return 0 67 Else 68 Return GetStr(psz, lstrlenW(psz), mbs) 69 End If 70 End Function 71 72 Function GetStr(psz As PWSTR, len As SIZE_T, ByRef mbs As PSTR) As SIZE_T 73 If psz = 0 Then Return 0 74 Dim sizeMBS = WideCharToMultiByte(CP_THREAD_ACP, 0, psz, len, 0, 0, 0, 0) 75 mbs = _System_AllocForConvertedString(SizeOf (SByte) * (sizeMBS + 1)) As PSTR 76 GetStr = WideCharToMultiByte(CP_THREAD_ACP, 0, psz, len, mbs, sizeMBS, 0, 0) As SIZE_T 77 mbs[GetStr] = 0 78 End Function 79 80 Function GetStr(psz As PSTR, ByRef mbs As PSTR) As SIZE_T 81 mbs = psz 82 If psz <> 0 Then 83 Return lstrlenA(psz) 84 Else 85 Return 0 86 End If 87 End Function 88 89 Function GetStr(psz As PSTR, len As SIZE_T, ByRef mbs As PSTR) As SIZE_T 90 mbs = psz 91 Return len 92 End Function 93 94 Function GetStr(ByRef s As String, ByRef mbs As PSTR) As SIZE_T 95 Return GetStr(s.Chars, s.Length As SIZE_T, mbs) 96 End Function 97 98 Function GetStr(ByRef s As String, ByRef wcs As PWSTR) As SIZE_T 99 Return GetStr(s.Chars, s.Length As SIZE_T, wcs) 100 End Function 101 102 Function GetWCStr(psz As PSTR, ByRef wcs As PWSTR) As SIZE_T 103 Return GetStr(psz, wcs) 104 End Function 105 106 Function GetWCStr(psz As PSTR, len As SIZE_T, ByRef wcs As PWSTR) As SIZE_T 107 Return GetStr(psz, len, wcs) 108 End Function 109 110 Function GetWCStr(psz As PWSTR, ByRef wcs As PWSTR) As SIZE_T 111 Return GetStr(psz, wcs) 112 End Function 113 114 Function GetWCStr(psz As PWSTR, len As SIZE_T, ByRef wcs As PWSTR) As SIZE_T 115 Return GetStr(psz, len, wcs) 116 End Function 117 118 Function GetWCStr(ByRef s As String, ByRef wcs As PWSTR) As SIZE_T 119 Return GetStr(s.Chars, s.Length, wcs) 120 End Function 121 122 Function GetMBStr(psz As PWSTR, ByRef mbs As PSTR) As SIZE_T 123 Return GetStr(psz, mbs) 124 End Function 125 126 Function GetMBStr(psz As PWSTR, len As SIZE_T, ByRef mbs As PSTR) As SIZE_T 127 Return GetStr(psz, len, mbs) 128 End Function 129 130 Function GetMBStr(psz As PSTR, ByRef mbs As PSTR) As SIZE_T 131 Return GetStr(psz, mbs) 132 End Function 133 134 Function GetMBStr(psz As PSTR, len As SIZE_T, ByRef mbs As PSTR) As SIZE_T 135 Return GetStr(psz, len, mbs) 136 End Function 137 138 Function GetMBStr(ByRef s As String, ByRef mbs As PSTR) As SIZE_T 139 Return GetStr(s.Chars, s.Length, mbs) 140 End Function 141 142 Function GetTCStr(psz As PSTR, ByRef tcs As PCTSTR) As SIZE_T 143 Return GetStr(psz, tcs) 144 End Function 145 146 Function GetTCStr(psz As PSTR, len As SIZE_T, ByRef tcs As PCTSTR) As SIZE_T 147 Return GetStr(psz, len, tcs) 148 End Function 149 150 Function GetTCStr(psz As PWSTR, ByRef tcs As PCTSTR) As SIZE_T 151 Return GetStr(psz, tcs) 152 End Function 153 154 Function GetTCStr(psz As PWSTR, len As SIZE_T, ByRef tcs As PCTSTR) As SIZE_T 155 Return GetStr(psz, len, tcs) 156 End Function 157 158 Function GetTCStr(ByRef s As String, ByRef wcs As PCTSTR) As SIZE_T 159 Return GetStr(s.Chars, s.Length, tcs) 160 End Function 161 162 Function GetSCStr(psz As PSTR, ByRef ss As *StrChar) As SIZE_T 163 Return GetStr(psz, ss) 164 End Function 165 166 Function GetSCStr(psz As PSTR, len As SIZE_T, ByRef ss As *StrChar) As SIZE_T 167 Return GetStr(psz, len, ss) 168 End Function 169 170 Function GetSCStr(psz As PWSTR, ByRef ss As *StrChar) As SIZE_T 171 Return GetStr(psz, ss) 172 End Function 173 174 Function GetSCStr(psz As PWSTR, len As SIZE_T, ByRef ss As *StrChar) As SIZE_T 175 Return GetStr(psz, len, ss) 176 End Function 177 178 Function GetSCStr(ByRef s As String, ByRef wcs As *StrChar) As SIZE_T 179 Return GetStr(s.Chars, s.Length, ss) 180 End Function 181 182 Function ToWCStr(psz As PSTR) As PWSTR 183 Return GetStr(psz, ToWCStr) 184 End Function 185 186 Function ToWCStr(psz As PSTR, len As SIZE_T) As PWSTR 187 Return GetStr(psz, len, ToWCStr) 188 End Function 189 190 Function ToWCStr(psz As PWSTR) As PWSTR 191 Return GetStr(psz, ToWCStr) 192 End Function 193 194 Function ToWCStr(psz As PWSTR, len As SIZE_T) As PWSTR 195 Return GetStr(psz, len, ToWCStr) 196 End Function 197 198 Function ToWCStr(ByRef s As String) As PWSTR 199 Return GetStr(s.Chars, s.Length, ToWCStr) 200 End Function 201 202 Function ToMBStr(psz As PSTR) As PSTR 203 Return GetStr(psz, ToMBStr) 204 End Function 205 206 Function ToMBStr(psz As PSTR, len As SIZE_T) As PSTR 207 Return GetStr(psz, len, ToMBStr) 208 End Function 209 210 Function ToMBStr(psz As PWSTR) As PSTR 211 Return GetStr(psz, ToMBStr) 212 End Function 213 214 Function ToMBStr(psz As PWSTR, len As SIZE_T) As PSTR 215 Return GetStr(psz, len, ToMBStr) 216 End Function 217 218 Function ToMBStr(ByRef s As String) As PSTR 219 Return GetStr(s.Chars, s.Length, ToMBStr) 220 End Function 221 222 Function ToTCStr(psz As PSTR) As PCTSTR 223 Return GetStr(psz, ToTCStr) 224 End Function 225 226 Function ToTCStr(psz As PSTR, len As SIZE_T) As PCTSTR 227 Return GetStr(psz, len, ToTCStr) 228 End Function 229 230 Function ToTCStr(psz As PWSTR) As PCTSTR 231 Return GetStr(psz, ToTCStr) 232 End Function 233 234 Function ToTCStr(psz As PWSTR, len As SIZE_T) As PCTSTR 235 Return GetStr(psz, len, ToTCStr) 236 End Function 237 238 Function ToTCStr(ByRef s As String) As PCTSTR 239 Return GetStr(s.Chars, s.Length, ToTCStr) 240 End Function 241 242 Function ToSCStr(psz As PSTR) As *StrChar 243 Return GetStr(psz, ToSCStr) 244 End Function 245 246 Function ToSCStr(psz As PSTR, len As SIZE_T) As *StrChar 247 Return GetStr(psz, len, ToSCStr) 248 End Function 249 250 Function ToSCStr(psz As PWSTR) As *StrChar 251 Return GetStr(psz, ToSCStr) 252 End Function 253 254 Function ToSCStr(psz As PWSTR, len As SIZE_T) As *StrChar 255 Return GetStr(psz, len, ToSCStr) 256 End Function 257 258 Function ToSCStr(ByRef s As String) As *StrChar 259 Return GetStr(s.Chars, s.Length, ToSCStr) 260 End Function 261 22 262 #endif '_INC_BASIC_STRING
Note:
See TracChangeset
for help on using the changeset viewer.