⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vc25pro_doc_unautils.html

📁 Voice Commnucation Components for Delphi
💻 HTML
📖 第 1 页 / 共 5 页
字号:
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_base65encode"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.base65encode(data: pointer; len: unsigned): string; overload;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_base65encode"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.base65encode(const data: string): string; overload;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_base65decode"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.base65decode(data: pointer; len: unsigned): string; overload;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_base65decode"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.base65decode(const data: string): string; overload;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_baseXencode"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.baseXencode(const data, key: string; ver: int): string;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_baseXdecode"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.baseXdecode(const data, key: string; ver: int): string;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_crc32"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.crc32(const data: string): [unknown];</SPAN></A><P />
  Calculates CRC32 checksum.
  <P />Based on Hagen Reddmann code.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_crc32"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.crc32(data: pointer; len: unsigned): [unknown];</SPAN></A><P />
  Calculates CRC32 checksum.
  <P />Based on Hagen Reddmann code.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_crc16"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.crc16(data: pointer; len: unsigned): uint16;</SPAN></A><P />
  Calculates CRC32 checksum.
  <P />Based on Hagen Reddmann code.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_crc8"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.crc8(data: pointer; len: unsigned): uint8;</SPAN></A><P />
  Calculates CRC8 checksum.
  <P />Based on Hagen Reddmann code.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_crc4"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.crc4(data: pointer; len: unsigned): uint8;</SPAN></A><P />
  Calculates CRC4 checksum.
  <P />Based on Hagen Reddmann code.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_cp2UTF8"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.cp2UTF8(cp: uint32): string;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_highSurrogate"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.highSurrogate(cp: uint32): uint16;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_lowSurrogate"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.lowSurrogate(cp: uint32): uint16;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_isHighSurrogate"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.isHighSurrogate(w: uint16): bool;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_isLowSurrogate"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.isLowSurrogate(w: uint16): bool;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_surrogate2cp"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.surrogate2cp(highSurrogate, lowSurrogate: uint16): uint32;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_UTF162UTF8"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.UTF162UTF8(const w: wideString): string;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_UTF82UTF16"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.UTF82UTF16(const s: string): wideString;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_fileSize2str"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.fileSize2str(sz: int64): string;</SPAN></A><P />
  Returns nice string about file size.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_fileExists"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.fileExists(const name: wideString): bool;</SPAN></A><P />
  Returns true if specified file exists.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_fileCreate"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.fileCreate(const name: wideString; truncate: bool = true; leaveOpen: bool = false): handle;</SPAN></A><P />
  Creates specified file. If file already exists, truncates it to zero-length file (if truncate is true).
  <BR />Returns INVALID_HANDLE_VALUE if file creation has been failed for some reason;
  <BR />Returns 0 if file was created successfully, and leaveOpen is false;
  <BR />Returns file handle if file was created successfully, and leaveOpen is true.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_fileOpen"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.fileOpen(const name: wideString; wantWrites: bool = false; allowSharedWrites: bool = true): handle;</SPAN></A><P />
  Opens a file. Returns INVALID_HANDLE_VALUE if file does not exist, or some other error occured.
  Returns 0 otherwise.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_fileClose"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.fileClose(f: handle): bool;</SPAN></A><P />
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_fileTruncate"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.fileTruncate(handle: handle; pos: unsigned = 0; posMode: unsigned = FILE_BEGIN): bool;</SPAN></A><P />
  Truncates file at specified position.
  <BR />Returns false if truncation has been failed for some reason.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_writeToFile"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.writeToFile(const name: wideString; buf: pointer; size: unsigned; pos: unsigned = 0; posMode: unsigned = FILE_END): int; overload;</SPAN></A><P />
  Writes data into file specified by name at specified position. Creates the file if it does not exists before operation.
  <BR />Returns:
  <UL>
	<LI>0 if operation has been completed successfully, or buf = nil, or size &lt; 1.</LI>
	<LI>-1 if no file name was given.</LI>
	<LI>-2 if there was some error in opening the file.</LI>
	<LI>-3 if operation has been failed for some reason.</LI>
	<LI>-4 if number of bytes written does not equal to given size.</LI>
  </UL>
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_writeToFile"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.writeToFile(const name: wideString; const buf: string; pos: unsigned = 0; posMode: unsigned = FILE_END): int; overload;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_writeToFile"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.writeToFile(handle: handle; buf: pointer; size: unsigned; pos: unsigned = 0; posMode: unsigned = FILE_CURRENT): int; overload;</SPAN></A><P />
  Writes data into the file specified by handle at specified position.
  <BR />Returns:
  <UL>
	<LI>0 if operation has been completed successfully, or buf = nil, or size &lt; 1.</LI>
	<LI>-2 if invalid file handle has been passed.</LI>
	<LI>-3 if operation has been failed for some reason.</LI>
	<LI>-4 if number of bytes written does not equal to given size.</LI>
  </UL>
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_writeToFile"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.writeToFile(handle: handle; const buf: string; pos: unsigned = 0; posMode: unsigned = FILE_CURRENT): int; overload;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_readFromFile"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.readFromFile(const name: wideString; buf: pointer; var size: unsigned; pos: unsigned = 0; posMode: unsigned = FILE_BEGIN): int; overload;</SPAN></A><P />
  Reads data from file specified by name at specified position.
  <BR />size will be set to number of bytes actually read from the file, or to 0 if some error occurs.
  <BR />Returns:
  <UL>
	<LI>0 if operation has been completed successfully, or buf = nil, or size &lt; 1.</LI>
	<LI>-1 if no file name was given.</LI>
	<LI>-2 if there was an error in opening the file.</LI>
	<LI>-3 if operation has been failed for some reason.</LI>
	<LI>-4 if number of bytes read does not equal to given size.</LI>
  </UL>
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_readFromFile"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.readFromFile(const name: wideString; pos: unsigned = 0; posMode: unsigned = FILE_BEGIN): string; overload;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_readFromFileW"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.readFromFileW(const name: wideString; pos: unsigned = 0; posMode: unsigned = FILE_BEGIN): wideString;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_readFromFile"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.readFromFile(handle: handle; buf: pointer; var size: unsigned; pos: unsigned = 0; posMode: unsigned = FILE_CURRENT): int; overload;</SPAN></A><P />
  Reads data from file specified by name at specified position.
  <BR />size will be set to number of bytes actually read from the file, or to 0 if some error occurs.
  <BR />Returns:
  <UL>
	<LI>0 if operation has been completed successfully, or buf = nil, or size &lt; 1.</LI>
	<LI>-2 if invalid file handle has been passed.</LI>
	<LI>-3 if operation has been failed for some reason.</LI>
	<LI>-4 if number of bytes read does not equal to given size.</LI>
  </UL>
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_fileSize"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.fileSize(const name: wideString): int; overload;</SPAN></A><P />
  Returns file size, or -1 if file does not exists.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_fileSize"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.fileSize(handle: handle): int; overload;</SPAN></A><P />
  Returns file size, or -1 if file does not exists.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_fileSeek"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.fileSeek(handle: handle; pos: int32 = 0; posMode: unsigned = FILE_BEGIN): int;</SPAN></A><P />
  Seeks the file to specified position.
  <BR />Returns resulting file position or -1 if file handle is invalid.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_fileMove"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.fileMove(const oldName, newName: wideString): bool;</SPAN></A><P />
  Renames the file.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_fileCopy"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.fileCopy(const oldName, newName: wideString; failIfExists: bool): bool;</SPAN></A><P />
  Copies the file.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_fileDelete"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.fileDelete(const fileName: wideString): bool;</SPAN></A><P />
  Removes the file.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_fileChecksum"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.fileChecksum(f: handle): [unknown];</SPAN></A><P />
  Returns CRC32 checksum of a file.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_fileChecksum"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.fileChecksum(const fileName: wideString): uint32; overload;</SPAN></A><P />
  Returns CRC32 checksum of a file.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_fileModificationDateTime"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.fileModificationDateTime(const fileName: wideString; useLocalTime: bool = true): SYSTEMTIME; overload;</SPAN></A><P />
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_fileModificationDateTime"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.fileModificationDateTime(f: handle; useLocalTime: bool = true): SYSTEMTIME; overload;</SPAN></A><P />
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_directoryExistsW"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.directoryExistsW(const name: wideString): bool;</SPAN></A><P />
  Returns true if specified directory exists.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_forceDirectoriesW"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.forceDirectoriesW(const path: wideString): bool;</SPAN></A><P />
  Ensures specified path exists. Recursively creates directories as required.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_extractFilePathW"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.extractFilePathW(const fileName: wideString): wideString;</SPAN></A><P />
  Returns file path (without file name).
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_extractFileNameW"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.extractFileNameW(const fileName: wideString): wideString;</SPAN></A><P />
  Returns file name (without file path).
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_changeFileExtW"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.changeFileExtW(const fileName: wideString; const ext: wideString = '.txt'): wideString;</SPAN></A><P />
  Replaces the file extension with given one.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_GetLongPathNameW"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.GetLongPathNameW(shortPathName: wideString): wideString;</SPAN></A><P />
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_BFFCALLBACK"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.BFFCALLBACK(wnd: HWND; uMsg: UINT; lParam, lpData: LPARAM): integer; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_Alloc"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.Alloc(cb: Longint): Pointer; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_Realloc"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.Realloc(pv: Pointer; cb: Longint): Pointer; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_Free"><SPAN class="source">procedure <SPAN class="class">unaUtils</SPAN>.Free(pv: Pointer); stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_GetSize"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.GetSize(pv: Pointer): Longint; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_DidAlloc"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.DidAlloc(pv: Pointer): Integer; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_HeapMinimize"><SPAN class="source">procedure <SPAN class="class">unaUtils</SPAN>.HeapMinimize(); stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_Next"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.Next(celt: ULONG; out rgelt: PItemIDList; var pceltFetched: ULONG): HResult; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_Skip"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.Skip(celt: ULONG): HResult; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_Reset"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.Reset(): HResult; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_Clone"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.Clone(out ppenum: IEnumIDList): HResult; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_ParseDisplayName"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.ParseDisplayName(hwndOwner: HWND; pbcReserved: Pointer; lpszDisplayName: PWideChar; out pchEaten: ULONG; out ppidl: PItemIDList; var dwAttributes: ULONG): HResult; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_EnumObjects"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.EnumObjects(hwndOwner: HWND; grfFlags: DWORD; out EnumIDList: IEnumIDList): HResult; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_BindToObject"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.BindToObject(pidl: PItemIDList; pbcReserved: Pointer; const riid: TGUID; out ppvOut: [unknown]): HResult; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_BindToStorage"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.BindToStorage(pidl: PItemIDList; pbcReserved: Pointer; const riid: TGUID; out ppvObj: [unknown]): HResult; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_CompareIDs"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.CompareIDs(lParam: LPARAM; pidl1, pidl2: PItemIDList): HResult; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_CreateViewObject"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.CreateViewObject(hwndOwner: HWND; const riid: TGUID; out ppvOut: [unknown]): HResult; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_GetAttributesOf"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.GetAttributesOf(cidl: UINT; var apidl: PItemIDList; var rgfInOut: UINT): HResult; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_GetUIObjectOf"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.GetUIObjectOf(hwndOwner: HWND; cidl: UINT; var apidl: PItemIDList; const riid: TGUID; prgfInOut: Pointer; out ppvOut: [unknown]): HResult; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_GetDisplayNameOf"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.GetDisplayNameOf(pidl: PItemIDList; uFlags: DWORD; var lpName: TStrRet): HResult; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_SetNameOf"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.SetNameOf(hwndOwner: HWND; pidl: PItemIDList; lpszName: PWideChar; uFlags: DWORD; var ppidlOut: PItemIDList): HResult; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_SHGetMalloc"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.SHGetMalloc(var ppMalloc: IMalloc): HResult; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_SHGetDesktopFolder"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.SHGetDesktopFolder(var ppshf: IShellFolder): HResult; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_SHBrowseForFolderA"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.SHBrowseForFolderA(var lpbi: TBrowseInfoA): PItemIDList; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_SHBrowseForFolderW"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.SHBrowseForFolderW(var lpbi: TBrowseInfoW): PItemIDList; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_SHGetPathFromIDListA"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.SHGetPathFromIDListA(pidl: PItemIDList; pszPath: PAnsiChar): BOOL; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_SHGetPathFromIDListW"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.SHGetPathFromIDListW(pidl: PItemIDList; pszPath: PWideChar): BOOL; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_guiSelectDirectory"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.guiSelectDirectory(const caption, root: wideString; var directory: wideString; handle: hWnd = 0; flags: uint = BIF_RETURNONLYFSDIRS): bool;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_addBackSlashW"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.addBackSlashW(const path: wideString): wideString;</SPAN></A><P />
  Ensures you can safely add a file name to the given path. Adds '\' character to the end of path if necessary.
  <BR />Exaples:
  <BR />C:\temp\ =&gt; C:\temp\
  <BR />C:\temp =&gt; C:\temp\
  <BR />C:\ =&gt; C:\
  <BR />C: =&gt; C:
  <BR />C:\temp/ =&gt; C:\temp/
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_getTemporaryFileName"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.getTemporaryFileName(const prefix: wideString = 'una'): wideString;</SPAN></A><P />
  Returns temporary file name.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_getTempFileName"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.getTempFileName(const prefix: wideString = 'una'): wideString;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_SHGetSpecialFolderPathA"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.SHGetSpecialFolderPathA(owner: HWND; lpszPath: pAnsiChar; nFolder: int; fCreate: BOOL): BOOL; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_SHGetSpecialFolderPathW"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.SHGetSpecialFolderPathW(owner: HWND; lpszPath: pWideChar; nFolder: int; fCreate: BOOL): BOOL; stdcall;</SPAN></A><P /></TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_getSpecialFolderPath"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.getSpecialFolderPath(nFolder: int; owner: handle = 0; doCreate: bool = false): wideString;</SPAN></A><P />
  Returns special folder path.
</TD></TR></TABLE></DIV><DIV><P /><TABLE BORDER="1" width="100%"><TR><TD><A NAME="routine_getAppDataFolderPath"><SPAN class="source">function <SPAN class="class">unaUtils</SPAN>.getAppDataFolderPath(owner: handle = 0; doCreate: bool = false): wideString;</SPAN></A><P />
  Returns Application Data folder path.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -