89 lines
2 KiB
C
89 lines
2 KiB
C
|
//+---------------------------------------------------------------------------
|
||
|
//
|
||
|
// Microsoft Windows
|
||
|
// Copyright (C) Microsoft Corporation, 1997.
|
||
|
//
|
||
|
// File: N C M S Z . H
|
||
|
//
|
||
|
// Contents: Common multi-sz routines.
|
||
|
//
|
||
|
// Notes: Split out from ncstring.h and included by ncstring.h
|
||
|
//
|
||
|
// Author: shaunco 7 Jun 1998
|
||
|
//
|
||
|
//----------------------------------------------------------------------------
|
||
|
|
||
|
#pragma once
|
||
|
#ifndef _NCMSZ_H_
|
||
|
#define _NCMSZ_H_
|
||
|
|
||
|
ULONG
|
||
|
CchOfMultiSzSafe (
|
||
|
IN PCWSTR pmsz);
|
||
|
|
||
|
ULONG
|
||
|
CchOfMultiSzAndTermSafe (
|
||
|
IN PCWSTR pmsz);
|
||
|
|
||
|
inline ULONG
|
||
|
CbOfMultiSzAndTermSafe (
|
||
|
IN PCWSTR pmsz)
|
||
|
{
|
||
|
return CchOfMultiSzAndTermSafe (pmsz) * sizeof(WCHAR);
|
||
|
}
|
||
|
|
||
|
|
||
|
BOOL
|
||
|
FGetSzPositionInMultiSzSafe (
|
||
|
IN PCWSTR psz,
|
||
|
IN PCWSTR pmsz,
|
||
|
OUT DWORD* pdwIndex,
|
||
|
OUT BOOL *pfDuplicatePresent,
|
||
|
OUT DWORD* pcStrings);
|
||
|
|
||
|
BOOL
|
||
|
FIsSzInMultiSzSafe (
|
||
|
IN PCWSTR psz,
|
||
|
IN PCWSTR pmsz);
|
||
|
|
||
|
// flags for HrAddSzToMultiSz and RemoveSzFromMultiSz
|
||
|
const DWORD STRING_FLAG_ALLOW_DUPLICATES = 0x00000001;
|
||
|
const DWORD STRING_FLAG_ENSURE_AT_FRONT = 0x00000002;
|
||
|
const DWORD STRING_FLAG_ENSURE_AT_END = 0x00000004;
|
||
|
const DWORD STRING_FLAG_ENSURE_AT_INDEX = 0x00000008;
|
||
|
const DWORD STRING_FLAG_DONT_MODIFY_IF_PRESENT = 0x00000010;
|
||
|
const DWORD STRING_FLAG_REMOVE_SINGLE = 0x00000020;
|
||
|
const DWORD STRING_FLAG_REMOVE_ALL = 0x00000040;
|
||
|
|
||
|
HRESULT
|
||
|
HrAddSzToMultiSz (
|
||
|
IN PCWSTR pszAddString,
|
||
|
IN PCWSTR pmszIn,
|
||
|
IN DWORD dwFlags,
|
||
|
IN DWORD dwStringIndex,
|
||
|
OUT PWSTR* ppmszOut,
|
||
|
OUT BOOL* pfChanged);
|
||
|
|
||
|
|
||
|
HRESULT
|
||
|
HrCreateArrayOfStringPointersIntoMultiSz (
|
||
|
IN PCWSTR pmszSrc,
|
||
|
OUT UINT* pcStrings,
|
||
|
OUT PCWSTR** papsz);
|
||
|
|
||
|
VOID
|
||
|
RemoveSzFromMultiSz (
|
||
|
IN PCWSTR psz,
|
||
|
IN OUT PWSTR pmsz,
|
||
|
IN DWORD dwFlags,
|
||
|
OUT BOOL* pfRemoved);
|
||
|
|
||
|
VOID
|
||
|
SzListToMultiSz (
|
||
|
IN PCWSTR psz,
|
||
|
OUT DWORD* pcb,
|
||
|
OUT PWSTR* ppszOut);
|
||
|
|
||
|
|
||
|
#endif // _NCMSZ_H
|