//+-------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992 - 1996. // // File: funcs.hxx // // Contents: Header for funcs.cxx // //--------------------------------------------------------------- #ifndef __FUNCS_HXX__ #define __FUNCS_HXX__ #include "dfmsp.hxx" class CDirectStream; SCODE VerifyPerms(DWORD grfMode); WCHAR * __cdecl wcsdup(WCHAR const *pwcs); SCODE DeleteIStorageContents(IStorage *pstg); SCODE CopyStreamToStream(CDirectStream *pstFrom, CDirectStream *pstTo); SCODE NameInSNB(CDfName const *dfn, SNBW snb); // For non-Unicode builds, we verify strings before converting them // to wide character strings, so there's no need to recheck them. #ifdef _UNICODE SCODE CheckWName(WCHAR const *pwcsName); #define CheckName(pwcsName) CheckWName(pwcsName) SCODE ValidateSNBW(SNBW snb); #else // validation done in ascii layer already #define CheckName(pwcsName) (S_OK) #define CheckWName(pwcsName) (S_OK) #define ValidateSNBW(x) (S_OK) #endif //+------------------------------------------------------------------------- // // Function: VerifyStatFlag // // Synopsis: verify Stat flag // // Arguments: [grfStatFlag] - stat flag // // Returns: S_OK or STG_E_INVALIDFLAG // //-------------------------------------------------------------------------- inline SCODE VerifyStatFlag(DWORD grfStatFlag) { SCODE sc = S_OK; if ((grfStatFlag & ~STATFLAG_NONAME) != 0) sc = STG_E_INVALIDFLAG; return(sc); } //+------------------------------------------------------------------------- // // Function: VerifyMoveFlags // // Synopsis: verify Move flag // // Arguments: [grfMoveFlag] - stat flag // // Returns: S_OK or STG_E_INVALIDFLAG // //-------------------------------------------------------------------------- inline SCODE VerifyMoveFlags(DWORD grfMoveFlag) { SCODE sc = S_OK; if ((grfMoveFlag & ~STGMOVE_COPY) != 0) sc = STG_E_INVALIDFLAG; return(sc); } #endif