Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//+---------------------------------------------------------------------------
//
// 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 PCTSTR pmsz);
ULONG CchOfMultiSzAndTermSafe ( IN PCTSTR pmsz);
inline ULONG CbOfMultiSzAndTermSafe ( IN PCTSTR pmsz) { return CchOfMultiSzAndTermSafe (pmsz) * sizeof(WCHAR); }
BOOL FGetSzPositionInMultiSzSafe ( IN PCTSTR psz, IN PCTSTR pmsz, OUT DWORD* pdwIndex, OUT BOOL *pfDuplicatePresent, OUT DWORD* pcStrings);
BOOL FIsSzInMultiSzSafe ( IN PCTSTR psz, IN PCTSTR 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 PCTSTR pszAddString, IN PCTSTR pmszIn, IN DWORD dwFlags, IN DWORD dwStringIndex, OUT PTSTR* ppmszOut, OUT BOOL* pfChanged);
HRESULT HrCreateArrayOfStringPointersIntoMultiSz ( IN PCTSTR pmszSrc, OUT UINT* pcStrings, OUT PCTSTR** papsz);
VOID RemoveSzFromMultiSz ( IN PCTSTR psz, IN OUT PTSTR pmsz, IN DWORD dwFlags, OUT BOOL* pfRemoved);
VOID SzListToMultiSz ( IN PCTSTR psz, OUT DWORD* pcb, OUT PTSTR* ppszOut);
#endif // _NCMSZ_H
|