//+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1994-1999. // // File: uastrfnc.h // // Contents: Unaligned UNICODE lstr functions for MIPS, PPC, ALPHA, ... // // Classes: // // Functions: // // //-------------------------------------------------------------------------- // NOTE: This file assumes it is included from shellprv.h #ifndef _UASTRFNC_H_ #pragma option push -b -a8 -pc -A- /*P_O_Push*/ #define _UASTRFNC_H_ #ifdef __cplusplus extern "C" { #endif // If we are running on a platform that requires aligned data, we need // to provide custom string functions that can deal with unaligned // strings. On other platforms, these call directly to the normal string // functions. #ifndef _X86_ #define ALIGNMENT_MACHINE #endif #ifdef ALIGNMENT_MACHINE #define IS_ALIGNED(p) (((ULONG_PTR)(p) & (sizeof(*(p))-1) )==0) UNALIGNED WCHAR * ualstrcpynW(UNALIGNED WCHAR * lpString1, UNALIGNED const WCHAR * lpString2, int iMaxLength); int ualstrcmpiW (UNALIGNED const WCHAR * dst, UNALIGNED const WCHAR * src); int ualstrcmpW (UNALIGNED const WCHAR * src, UNALIGNED const WCHAR * dst); size_t ualstrlenW (UNALIGNED const WCHAR * wcs); UNALIGNED WCHAR * ualstrcpyW (UNALIGNED WCHAR * dst, UNALIGNED const WCHAR * src); #else #define ualstrcpynW StrCpyNW // lstrcpynW is stubbed out on Windows 95 #define ualstrcmpiW StrCmpIW // lstrcmpiW is stubbed out on Windows 95 #define ualstrcmpW StrCmpW // lstrcmpW is stubbed out on Windows 95 #define ualstrlenW lstrlenW #define ualstrcpyW StrCpyW // lstrcpyW is stubbed out on Windows 95 #endif // ALIGNMENT_MACHINE #define ualstrcpynA lstrcpynA #define ualstrcmpiA lstrcmpiA #define ualstrcmpA lstrcmpA #define ualstrlenA lstrlenA #define ualstrcpyA lstrcpyA #ifdef UNICODE #define ualstrcpyn ualstrcpynW #define ualstrcmpi ualstrcmpiW #define ualstrcmp ualstrcmpW #define ualstrlen ualstrlenW #define ualstrcpy ualstrcpyW #else #define ualstrcpyn ualstrcpynA #define ualstrcmpi ualstrcmpiA #define ualstrcmp ualstrcmpA #define ualstrlen ualstrlenA #define ualstrcpy ualstrcpyA #endif #ifdef __cplusplus } // extern "C" #endif #pragma option pop /*P_O_Pop*/ #endif // _UASTRFNC_H_