uLib  User mode C/C++ extended API library for Win32 programmers.
Multi-Strings

Module Description

These functions operate on multi-string composites, such as those
returned when reading a whole ini-file section or registry multi-sz.

Macros

#define EnumerateMultiSz   EnumerateMultiSzA
 
#define PFnEnumMultiString   PFnEnumMultiStringA
 
#define MultiSzLength   MultiSzLengthA
 
#define MultiSzCount   MultiSzCountA
 

Typedefs

typedef bool(__stdcall * PFnEnumMultiStringA) (ASTR Str, PVOID Context)
 
typedef bool(__stdcall * PFnEnumMultiStringW) (WSTR Str, PVOID Context)
 

Functions

UINT EnumerateMultiSzA (ASTR MultiSz, PFnEnumMultiStringA Action, PVOID Context)
 
UINT EnumerateMultiSzW (WSTR MultiSz, PFnEnumMultiStringW Action, PVOID Context)
 
UINT MultiSzLengthA (ACSTR MultiSz)
 
UINT MultiSzLengthW (WCSTR MultiSz)
 
UINT MultiSzCountA (ACSTR MultiSz)
 
UINT MultiSzCountW (WCSTR MultiSz)
 
TSTR MultiCrLfToLf (TSTR pText)
 
TSTR LinesToMultiSz (TSTR pText, UINT *ccSz)
 
TSTR MultiSzToLines (TSTR pText)
 
TSTR DuplicateMultiSz (CSTR pzMulti)
 
TSTR FreeMultiSz (TSTR pzMulti)
 

Macro Definition Documentation

◆ EnumerateMultiSz

#define EnumerateMultiSz   EnumerateMultiSzA

Definition at line 275 of file StrFunc.h.

◆ PFnEnumMultiString

#define PFnEnumMultiString   PFnEnumMultiStringA

Definition at line 276 of file StrFunc.h.

◆ MultiSzLength

#define MultiSzLength   MultiSzLengthA

Definition at line 277 of file StrFunc.h.

◆ MultiSzCount

#define MultiSzCount   MultiSzCountA

Definition at line 278 of file StrFunc.h.

Typedef Documentation

◆ PFnEnumMultiStringA

typedef bool(__stdcall * PFnEnumMultiStringA) (ASTR Str, PVOID Context)

PFnEnumMultiString() is the callback function for EnumerateMultiSz().

Parameters
StrA string in the multi-sz block. You may subdivide it freely.
ContextWhatever you passed to EnumerateMultiSz. Return true to continue enumeration.

Definition at line 286 of file StrFunc.h.

◆ PFnEnumMultiStringW

typedef bool(__stdcall * PFnEnumMultiStringW) (WSTR Str, PVOID Context)

See PFnEnumMultiStringA().

Definition at line 287 of file StrFunc.h.

Function Documentation

◆ EnumerateMultiSzA()

UINT EnumerateMultiSzA ( ASTR  MultiSz,
PFnEnumMultiStringA  Action,
PVOID  Context 
)

Enumerate multi-strings.
Return nr of strings actually processed by Action.

Parameters
MultiSzSequential NUL separated strings, ended with an extra NUL.
ActionEnumeration callback function, PFnEnumMultiString.
ContextAnything your Action might need.

Definition at line 392 of file StrFunc.cpp.

◆ EnumerateMultiSzW()

UINT EnumerateMultiSzW ( WSTR  MultiSz,
PFnEnumMultiStringW  Action,
PVOID  Context 
)

See EnumerateMultiSzA().

Definition at line 407 of file StrFunc.cpp.

◆ MultiSzLengthA()

UINT MultiSzLengthA ( ACSTR  MultiSz)

MultiSzLength() returns the nr of TCHARs in a multi-string, including the final NUL.

Definition at line 423 of file StrFunc.cpp.

◆ MultiSzLengthW()

UINT MultiSzLengthW ( WCSTR  MultiSz)

See MultiSzLengthA().

Definition at line 430 of file StrFunc.cpp.

◆ MultiSzCountA()

UINT MultiSzCountA ( ACSTR  MultiSz)

MultiSzCount() returns the nr of strings in a multi-string.

Definition at line 439 of file StrFunc.cpp.

◆ MultiSzCountW()

UINT MultiSzCountW ( WCSTR  MultiSz)

See MultiSzCountA().

Definition at line 451 of file StrFunc.cpp.

◆ MultiCrLfToLf()

TSTR MultiCrLfToLf ( TSTR  pText)

MultiCrLfToLf() ompacts the string by changing CRLFs into single LF delimiters.
The presence of CRLF is assumed already detected or known.

Note:: This does currently not deal with Mac style CR only, or mixed line endings, only strict CRLF endings.

Definition at line 467 of file StrFunc.cpp.

◆ LinesToMultiSz()

TSTR LinesToMultiSz ( TSTR  pText,
UINT *  ccSz 
)

LinesToMultiSz() replaces LFs with NUL, in preparation for writing to registry or ini section.
Optionally return the length of the multi-string, in TCHARs, including final NUL.

Definition at line 493 of file StrFunc.cpp.

◆ MultiSzToLines()

TSTR MultiSzToLines ( TSTR  pText)

MultiSzToLines() replaces NUL delimiters with LF (eg. in multi-sz from registry or ini section).

Definition at line 514 of file StrFunc.cpp.

◆ DuplicateMultiSz()

TSTR DuplicateMultiSz ( CSTR  pzMulti)

DuplicateMultiSz() duplicates a multi-string. Free it with FreeMultiSz();

Definition at line 527 of file StrFunc.cpp.

◆ FreeMultiSz()

TSTR FreeMultiSz ( TSTR  pzMulti)

Free a DuplicateMultiSz() string.

Definition at line 538 of file StrFunc.cpp.