1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077 |
- /**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
- #ifndef _STRSAFE_H_INCLUDED_
- #define _STRSAFE_H_INCLUDED_
- #include <_mingw_unicode.h>
- #include <stdio.h>
- #include <string.h>
- #include <stdarg.h>
- #include <specstrings.h>
- #if defined(__CRT__NO_INLINE) && !defined(__CRT_STRSAFE_IMPL)
- #define __STRSAFE__NO_INLINE
- #endif
- #ifndef _SIZE_T_DEFINED
- #define _SIZE_T_DEFINED
- #undef size_t
- #ifdef _WIN64
- __MINGW_EXTENSION typedef unsigned __int64 size_t;
- #else
- typedef unsigned int size_t;
- #endif
- #endif
- #ifndef _SSIZE_T_DEFINED
- #define _SSIZE_T_DEFINED
- #undef ssize_t
- #ifdef _WIN64
- __MINGW_EXTENSION typedef __int64 ssize_t;
- #else
- typedef int ssize_t;
- #endif
- #endif
- #ifndef _WCHAR_T_DEFINED
- #define _WCHAR_T_DEFINED
- typedef unsigned short wchar_t;
- #endif
- #ifndef _HRESULT_DEFINED
- #define _HRESULT_DEFINED
- typedef __LONG32 HRESULT;
- #endif
- #ifndef SUCCEEDED
- #define SUCCEEDED(hr) ((HRESULT)(hr) >= 0)
- #endif
- #ifndef FAILED
- #define FAILED(hr) ((HRESULT)(hr) < 0)
- #endif
- #ifndef S_OK
- #define S_OK ((HRESULT)0x00000000)
- #endif
- #ifndef C_ASSERT
- #ifdef _MSC_VER
- # define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1]
- #else
- # define C_ASSERT(e) extern void __C_ASSERT__(int [(e)?1:-1])
- #endif
- #endif /* C_ASSERT */
- /* extern removed for C mode to avoid double extern qualifier from __CRT_INLINE */
- #ifdef __cplusplus
- #define _STRSAFE_EXTERN_C extern "C"
- #else
- #define _STRSAFE_EXTERN_C
- #endif
- #ifndef WINAPI
- #if defined(_ARM_)
- #define WINAPI
- #else
- #define WINAPI __stdcall
- #endif
- #endif
- #if !defined(__CRT__NO_INLINE) && !defined(__CRT_STRSAFE_IMPL)
- #define STRSAFEAPI _STRSAFE_EXTERN_C __inline HRESULT WINAPI
- /* Variadic functions can't be __stdcall. */
- #define STRSAFEAPIV _STRSAFE_EXTERN_C __inline HRESULT
- #else
- #define STRSAFEAPI _STRSAFE_EXTERN_C HRESULT WINAPI
- /* Variadic functions can't be __stdcall. */
- #define STRSAFEAPIV _STRSAFE_EXTERN_C HRESULT
- #endif
- #if !defined(__CRT__NO_INLINE) && !defined(__CRT_STRSAFE_IMPL)
- #define STRSAFE_INLINE_API _STRSAFE_EXTERN_C __CRT_INLINE HRESULT WINAPI
- #else
- #define STRSAFE_INLINE_API HRESULT WINAPI
- #endif
- #define STRSAFE_MAX_CCH 2147483647
- #ifndef _NTSTRSAFE_H_INCLUDED_
- #define STRSAFE_IGNORE_NULLS 0x00000100
- #define STRSAFE_FILL_BEHIND_NULL 0x00000200
- #define STRSAFE_FILL_ON_FAILURE 0x00000400
- #define STRSAFE_NULL_ON_FAILURE 0x00000800
- #define STRSAFE_NO_TRUNCATION 0x00001000
- #define STRSAFE_IGNORE_NULL_UNICODE_STRINGS 0x00010000
- #define STRSAFE_UNICODE_STRING_DEST_NULL_TERMINATED 0x00020000
- #define STRSAFE_VALID_FLAGS (0x000000FF | STRSAFE_IGNORE_NULLS | STRSAFE_FILL_BEHIND_NULL | STRSAFE_FILL_ON_FAILURE | STRSAFE_NULL_ON_FAILURE | STRSAFE_NO_TRUNCATION)
- #define STRSAFE_UNICODE_STRING_VALID_FLAGS (STRSAFE_VALID_FLAGS | STRSAFE_IGNORE_NULL_UNICODE_STRINGS | STRSAFE_UNICODE_STRING_DEST_NULL_TERMINATED)
- #define STRSAFE_FILL_BYTE(x) ((unsigned __LONG32)((x & 0x000000FF) | STRSAFE_FILL_BEHIND_NULL))
- #define STRSAFE_FAILURE_BYTE(x) ((unsigned __LONG32)((x & 0x000000FF) | STRSAFE_FILL_ON_FAILURE))
- #define STRSAFE_GET_FILL_PATTERN(dwFlags) ((int)(dwFlags & 0x000000FF))
- #endif
- #define STRSAFE_E_INSUFFICIENT_BUFFER ((HRESULT)0x8007007A)
- #define STRSAFE_E_INVALID_PARAMETER ((HRESULT)0x80070057)
- #define STRSAFE_E_END_OF_FILE ((HRESULT)0x80070026)
- typedef char *STRSAFE_LPSTR;
- typedef const char *STRSAFE_LPCSTR;
- typedef wchar_t *STRSAFE_LPWSTR;
- typedef const wchar_t *STRSAFE_LPCWSTR;
- STRSAFEAPI StringCopyWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc);
- STRSAFEAPI StringCopyWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc);
- STRSAFEAPI StringCopyExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- STRSAFEAPI StringCopyExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- STRSAFEAPI StringCopyNWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToCopy);
- STRSAFEAPI StringCopyNWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToCopy);
- STRSAFEAPI StringCopyNExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cchToCopy,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- STRSAFEAPI StringCopyNExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cchToCopy,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- STRSAFEAPI StringCatWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc);
- STRSAFEAPI StringCatWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc);
- STRSAFEAPI StringCatExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- STRSAFEAPI StringCatExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- STRSAFEAPI StringCatNWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToAppend);
- STRSAFEAPI StringCatNWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToAppend);
- STRSAFEAPI StringCatNExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cchToAppend,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- STRSAFEAPI StringCatNExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cchToAppend,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- STRSAFEAPI StringVPrintfWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszFormat,va_list argList);
- STRSAFEAPI StringVPrintfWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszFormat,va_list argList);
- STRSAFEAPI StringVPrintfExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,va_list argList);
- STRSAFEAPI StringVPrintfExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,va_list argList);
- STRSAFEAPI StringLengthWorkerA(STRSAFE_LPCSTR psz,size_t cchMax,size_t *pcchLength);
- STRSAFEAPI StringLengthWorkerW(STRSAFE_LPCWSTR psz,size_t cchMax,size_t *pcchLength);
- STRSAFE_INLINE_API StringGetsExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- STRSAFE_INLINE_API StringGetsExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- #define StringCchCopy __MINGW_NAME_AW(StringCchCopy)
- STRSAFEAPI StringCchCopyA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc);
- STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc);
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCchCopyA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc) {
- return (cchDest > STRSAFE_MAX_CCH ? STRSAFE_E_INVALID_PARAMETER : StringCopyWorkerA(pszDest,cchDest,pszSrc));
- }
- STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc) {
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringCopyWorkerW(pszDest,cchDest,pszSrc);
- }
- #endif /* !__STRSAFE__NO_INLINE */
- #define StringCbCopy __MINGW_NAME_AW(StringCbCopy)
- STRSAFEAPI StringCbCopyA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc);
- STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc);
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCbCopyA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc) {
- if(cbDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringCopyWorkerA(pszDest,cbDest,pszSrc);
- }
- STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc) {
- size_t cchDest = cbDest / sizeof(wchar_t);
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringCopyWorkerW(pszDest,cchDest,pszSrc);
- }
- #endif /* !__STRSAFE__NO_INLINE */
- #define StringCchCopyEx __MINGW_NAME_AW(StringCchCopyEx)
- STRSAFEAPI StringCchCopyExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- STRSAFEAPI StringCchCopyExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCchCopyExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringCopyExWorkerA(pszDest,cchDest,cchDest,pszSrc,ppszDestEnd,pcchRemaining,dwFlags);
- }
- STRSAFEAPI StringCchCopyExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- size_t cbDest;
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- cbDest = cchDest * sizeof(wchar_t);
- return StringCopyExWorkerW(pszDest,cchDest,cbDest,pszSrc,ppszDestEnd,pcchRemaining,dwFlags);
- }
- #endif /* !__STRSAFE__NO_INLINE */
- #define StringCbCopyEx __MINGW_NAME_AW(StringCbCopyEx)
- STRSAFEAPI StringCbCopyExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
- STRSAFEAPI StringCbCopyExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCbCopyExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr;
- size_t cchRemaining = 0;
- if(cbDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- hr = StringCopyExWorkerA(pszDest,cbDest,cbDest,pszSrc,ppszDestEnd,&cchRemaining,dwFlags);
- if(SUCCEEDED(hr) || hr == STRSAFE_E_INSUFFICIENT_BUFFER) {
- if(pcbRemaining)
- *pcbRemaining = (cchRemaining*sizeof(char)) + (cbDest % sizeof(char));
- }
- return hr;
- }
- STRSAFEAPI StringCbCopyExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr;
- size_t cchDest = cbDest / sizeof(wchar_t);
- size_t cchRemaining = 0;
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- hr = StringCopyExWorkerW(pszDest,cchDest,cbDest,pszSrc,ppszDestEnd,&cchRemaining,dwFlags);
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
- if(pcbRemaining)
- *pcbRemaining = (cchRemaining*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t));
- }
- return hr;
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPI StringCchCopyNA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToCopy);
- STRSAFEAPI StringCchCopyNW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToCopy);
- #define StringCchCopyN __MINGW_NAME_AW(StringCchCopyN)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCchCopyNA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToCopy) {
- if(cchDest > STRSAFE_MAX_CCH || cchToCopy > STRSAFE_MAX_CCH)
- return STRSAFE_E_INVALID_PARAMETER;
- return StringCopyNWorkerA(pszDest,cchDest,pszSrc,cchToCopy);
- }
- STRSAFEAPI StringCchCopyNW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToCopy) {
- if(cchDest > STRSAFE_MAX_CCH || cchToCopy > STRSAFE_MAX_CCH)
- return STRSAFE_E_INVALID_PARAMETER;
- return StringCopyNWorkerW(pszDest,cchDest,pszSrc,cchToCopy);
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPI StringCbCopyNA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToCopy);
- STRSAFEAPI StringCbCopyNW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToCopy);
- #define StringCbCopyN __MINGW_NAME_AW(StringCbCopyN)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCbCopyNA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToCopy) {
- if(cbDest > STRSAFE_MAX_CCH || cbToCopy > STRSAFE_MAX_CCH)
- return STRSAFE_E_INVALID_PARAMETER;
- return StringCopyNWorkerA(pszDest,cbDest,pszSrc,cbToCopy);
- }
- STRSAFEAPI StringCbCopyNW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToCopy) {
- size_t cchDest = cbDest / sizeof(wchar_t);
- size_t cchToCopy = cbToCopy / sizeof(wchar_t);
- if(cchDest > STRSAFE_MAX_CCH || cchToCopy > STRSAFE_MAX_CCH)
- return STRSAFE_E_INVALID_PARAMETER;
- return StringCopyNWorkerW(pszDest,cchDest,pszSrc,cchToCopy);
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPI StringCchCopyNExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToCopy,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- STRSAFEAPI StringCchCopyNExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToCopy,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- #define StringCchCopyNEx __MINGW_NAME_AW(StringCchCopyNEx)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCchCopyNExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToCopy,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringCopyNExWorkerA(pszDest,cchDest,cchDest,pszSrc,cchToCopy,ppszDestEnd,pcchRemaining,dwFlags);
- }
- STRSAFEAPI StringCchCopyNExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToCopy,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringCopyNExWorkerW(pszDest,cchDest,cchDest * sizeof(wchar_t),pszSrc,cchToCopy,ppszDestEnd,pcchRemaining,dwFlags);
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPI StringCbCopyNExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToCopy,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
- STRSAFEAPI StringCbCopyNExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToCopy,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
- #define StringCbCopyNEx __MINGW_NAME_AW(StringCbCopyNEx)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCbCopyNExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToCopy,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr;
- size_t cchRemaining = 0;
- if(cbDest > STRSAFE_MAX_CCH)
- hr = STRSAFE_E_INVALID_PARAMETER;
- else
- hr = StringCopyNExWorkerA(pszDest,cbDest,cbDest,pszSrc,cbToCopy,ppszDestEnd,&cchRemaining,dwFlags);
- if((SUCCEEDED(hr) || hr == STRSAFE_E_INSUFFICIENT_BUFFER) && pcbRemaining)
- *pcbRemaining = cchRemaining;
- return hr;
- }
- STRSAFEAPI StringCbCopyNExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToCopy,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr;
- size_t cchDest;
- size_t cchToCopy;
- size_t cchRemaining = 0;
- cchDest = cbDest / sizeof(wchar_t);
- cchToCopy = cbToCopy / sizeof(wchar_t);
- if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = StringCopyNExWorkerW(pszDest,cchDest,cbDest,pszSrc,cchToCopy,ppszDestEnd,&cchRemaining,dwFlags);
- if((SUCCEEDED(hr) || hr == STRSAFE_E_INSUFFICIENT_BUFFER) && pcbRemaining)
- *pcbRemaining = (cchRemaining*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t));
- return hr;
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPI StringCchCatA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc);
- STRSAFEAPI StringCchCatW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc);
- #define StringCchCat __MINGW_NAME_AW(StringCchCat)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCchCatA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc) {
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringCatWorkerA(pszDest,cchDest,pszSrc);
- }
- STRSAFEAPI StringCchCatW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc) {
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringCatWorkerW(pszDest,cchDest,pszSrc);
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPI StringCbCatA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc);
- STRSAFEAPI StringCbCatW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc);
- #define StringCbCat __MINGW_NAME_AW(StringCbCat)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCbCatA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc) {
- if(cbDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringCatWorkerA(pszDest,cbDest,pszSrc);
- }
- STRSAFEAPI StringCbCatW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc) {
- size_t cchDest = cbDest / sizeof(wchar_t);
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringCatWorkerW(pszDest,cchDest,pszSrc);
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPI StringCchCatExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- STRSAFEAPI StringCchCatExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- #define StringCchCatEx __MINGW_NAME_AW(StringCchCatEx)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCchCatExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringCatExWorkerA(pszDest,cchDest,cchDest,pszSrc,ppszDestEnd,pcchRemaining,dwFlags);
- }
- STRSAFEAPI StringCchCatExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- size_t cbDest = cchDest*sizeof(wchar_t);
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringCatExWorkerW(pszDest,cchDest,cbDest,pszSrc,ppszDestEnd,pcchRemaining,dwFlags);
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPI StringCbCatExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
- STRSAFEAPI StringCbCatExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
- #define StringCbCatEx __MINGW_NAME_AW(StringCbCatEx)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCbCatExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr;
- size_t cchRemaining = 0;
- if(cbDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = StringCatExWorkerA(pszDest,cbDest,cbDest,pszSrc,ppszDestEnd,&cchRemaining,dwFlags);
- if((SUCCEEDED(hr) || hr == STRSAFE_E_INSUFFICIENT_BUFFER) && pcbRemaining)
- *pcbRemaining = (cchRemaining*sizeof(char)) + (cbDest % sizeof(char));
- return hr;
- }
- STRSAFEAPI StringCbCatExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr;
- size_t cchDest = cbDest / sizeof(wchar_t);
- size_t cchRemaining = 0;
- if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = StringCatExWorkerW(pszDest,cchDest,cbDest,pszSrc,ppszDestEnd,&cchRemaining,dwFlags);
- if((SUCCEEDED(hr) || hr == STRSAFE_E_INSUFFICIENT_BUFFER) && pcbRemaining)
- *pcbRemaining = (cchRemaining*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t));
- return hr;
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPI StringCchCatNA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToAppend);
- STRSAFEAPI StringCchCatNW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToAppend);
- #define StringCchCatN __MINGW_NAME_AW(StringCchCatN)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCchCatNA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToAppend) {
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringCatNWorkerA(pszDest,cchDest,pszSrc,cchToAppend);
- }
- STRSAFEAPI StringCchCatNW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToAppend) {
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringCatNWorkerW(pszDest,cchDest,pszSrc,cchToAppend);
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPI StringCbCatNA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToAppend);
- STRSAFEAPI StringCbCatNW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToAppend);
- #define StringCbCatN __MINGW_NAME_AW(StringCbCatN)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCbCatNA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToAppend) {
- if(cbDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringCatNWorkerA(pszDest,cbDest,pszSrc,cbToAppend);
- }
- STRSAFEAPI StringCbCatNW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToAppend) {
- size_t cchDest = cbDest / sizeof(wchar_t);
- size_t cchToAppend = cbToAppend / sizeof(wchar_t);
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringCatNWorkerW(pszDest,cchDest,pszSrc,cchToAppend);
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPI StringCchCatNExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToAppend,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- STRSAFEAPI StringCchCatNExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToAppend,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- #define StringCchCatNEx __MINGW_NAME_AW(StringCchCatNEx)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCchCatNExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToAppend,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringCatNExWorkerA(pszDest,cchDest,cchDest,pszSrc,cchToAppend,ppszDestEnd,pcchRemaining,dwFlags);
- }
- STRSAFEAPI StringCchCatNExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToAppend,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringCatNExWorkerW(pszDest,cchDest,(cchDest*sizeof(wchar_t)),pszSrc,cchToAppend,ppszDestEnd,pcchRemaining,dwFlags);
- }
- #endif
- STRSAFEAPI StringCbCatNExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToAppend,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
- STRSAFEAPI StringCbCatNExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToAppend,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
- #define StringCbCatNEx __MINGW_NAME_AW(StringCbCatNEx)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCbCatNExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cbToAppend,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr;
- size_t cchRemaining = 0;
- if(cbDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = StringCatNExWorkerA(pszDest,cbDest,cbDest,pszSrc,cbToAppend,ppszDestEnd,&cchRemaining,dwFlags);
- if((SUCCEEDED(hr) || hr == STRSAFE_E_INSUFFICIENT_BUFFER) && pcbRemaining)
- *pcbRemaining = (cchRemaining*sizeof(char)) + (cbDest % sizeof(char));
- return hr;
- }
- STRSAFEAPI StringCbCatNExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cbToAppend,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr;
- size_t cchDest = cbDest / sizeof(wchar_t);
- size_t cchToAppend = cbToAppend / sizeof(wchar_t);
- size_t cchRemaining = 0;
- if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = StringCatNExWorkerW(pszDest,cchDest,cbDest,pszSrc,cchToAppend,ppszDestEnd,&cchRemaining,dwFlags);
- if((SUCCEEDED(hr) || hr == STRSAFE_E_INSUFFICIENT_BUFFER) && pcbRemaining)
- *pcbRemaining = (cchRemaining*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t));
- return hr;
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPI StringCchVPrintfA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszFormat,va_list argList);
- STRSAFEAPI StringCchVPrintfW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszFormat,va_list argList);
- #define StringCchVPrintf __MINGW_NAME_AW(StringCchVPrintf)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCchVPrintfA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszFormat,va_list argList) {
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringVPrintfWorkerA(pszDest,cchDest,pszFormat,argList);
- }
- STRSAFEAPI StringCchVPrintfW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszFormat,va_list argList) {
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringVPrintfWorkerW(pszDest,cchDest,pszFormat,argList);
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPI StringCbVPrintfA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszFormat,va_list argList);
- STRSAFEAPI StringCbVPrintfW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszFormat,va_list argList);
- #define StringCbVPrintf __MINGW_NAME_AW(StringCbVPrintf)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCbVPrintfA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszFormat,va_list argList) {
- if(cbDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringVPrintfWorkerA(pszDest,cbDest,pszFormat,argList);
- }
- STRSAFEAPI StringCbVPrintfW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszFormat,va_list argList) {
- size_t cchDest = cbDest / sizeof(wchar_t);
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- return StringVPrintfWorkerW(pszDest,cchDest,pszFormat,argList);
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPIV StringCchPrintfA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszFormat,...);
- STRSAFEAPIV StringCchPrintfW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszFormat,...);
- #define StringCchPrintf __MINGW_NAME_AW(StringCchPrintf)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPIV StringCchPrintfA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszFormat,...) {
- HRESULT hr;
- va_list argList;
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- va_start(argList,pszFormat);
- hr = StringVPrintfWorkerA(pszDest,cchDest,pszFormat,argList);
- va_end(argList);
- return hr;
- }
- STRSAFEAPIV StringCchPrintfW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszFormat,...) {
- HRESULT hr;
- va_list argList;
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- va_start(argList,pszFormat);
- hr = StringVPrintfWorkerW(pszDest,cchDest,pszFormat,argList);
- va_end(argList);
- return hr;
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPIV StringCbPrintfA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszFormat,...);
- STRSAFEAPIV StringCbPrintfW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszFormat,...);
- #define StringCbPrintf __MINGW_NAME_AW(StringCbPrintf)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPIV StringCbPrintfA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPCSTR pszFormat,...) {
- HRESULT hr;
- va_list argList;
- if(cbDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- va_start(argList,pszFormat);
- hr = StringVPrintfWorkerA(pszDest,cbDest,pszFormat,argList);
- va_end(argList);
- return hr;
- }
- STRSAFEAPIV StringCbPrintfW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPCWSTR pszFormat,...) {
- HRESULT hr;
- va_list argList;
- size_t cchDest = cbDest / sizeof(wchar_t);
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- va_start(argList,pszFormat);
- hr = StringVPrintfWorkerW(pszDest,cchDest,pszFormat,argList);
- va_end(argList);
- return hr;
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPIV StringCchPrintfExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,...);
- STRSAFEAPIV StringCchPrintfExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,...);
- #define StringCchPrintfEx __MINGW_NAME_AW(StringCchPrintfEx)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPIV StringCchPrintfExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,...) {
- HRESULT hr;
- va_list argList;
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- va_start(argList,pszFormat);
- hr = StringVPrintfExWorkerA(pszDest,cchDest,cchDest,ppszDestEnd,pcchRemaining,dwFlags,pszFormat,argList);
- va_end(argList);
- return hr;
- }
- STRSAFEAPIV StringCchPrintfExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,...) {
- HRESULT hr;
- size_t cbDest = cchDest * sizeof(wchar_t);
- va_list argList;
- if(cchDest > STRSAFE_MAX_CCH) return STRSAFE_E_INVALID_PARAMETER;
- va_start(argList,pszFormat);
- hr = StringVPrintfExWorkerW(pszDest,cchDest,cbDest,ppszDestEnd,pcchRemaining,dwFlags,pszFormat,argList);
- va_end(argList);
- return hr;
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPIV StringCbPrintfExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,...);
- STRSAFEAPIV StringCbPrintfExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,...);
- #define StringCbPrintfEx __MINGW_NAME_AW(StringCbPrintfEx)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPIV StringCbPrintfExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,...) {
- HRESULT hr;
- size_t cchDest;
- size_t cchRemaining = 0;
- cchDest = cbDest / sizeof(char);
- if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- va_list argList;
- va_start(argList,pszFormat);
- hr = StringVPrintfExWorkerA(pszDest,cchDest,cbDest,ppszDestEnd,&cchRemaining,dwFlags,pszFormat,argList);
- va_end(argList);
- }
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
- if(pcbRemaining) {
- *pcbRemaining = (cchRemaining*sizeof(char)) + (cbDest % sizeof(char));
- }
- }
- return hr;
- }
- STRSAFEAPIV StringCbPrintfExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,...) {
- HRESULT hr;
- size_t cchDest;
- size_t cchRemaining = 0;
- cchDest = cbDest / sizeof(wchar_t);
- if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- va_list argList;
- va_start(argList,pszFormat);
- hr = StringVPrintfExWorkerW(pszDest,cchDest,cbDest,ppszDestEnd,&cchRemaining,dwFlags,pszFormat,argList);
- va_end(argList);
- }
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
- if(pcbRemaining) {
- *pcbRemaining = (cchRemaining*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t));
- }
- }
- return hr;
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPI StringCchVPrintfExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,va_list argList);
- STRSAFEAPI StringCchVPrintfExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,va_list argList);
- #define StringCchVPrintfEx __MINGW_NAME_AW(StringCchVPrintfEx)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCchVPrintfExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,va_list argList) {
- HRESULT hr;
- if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- size_t cbDest;
- cbDest = cchDest*sizeof(char);
- hr = StringVPrintfExWorkerA(pszDest,cchDest,cbDest,ppszDestEnd,pcchRemaining,dwFlags,pszFormat,argList);
- }
- return hr;
- }
- STRSAFEAPI StringCchVPrintfExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,va_list argList) {
- HRESULT hr;
- if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- size_t cbDest;
- cbDest = cchDest*sizeof(wchar_t);
- hr = StringVPrintfExWorkerW(pszDest,cchDest,cbDest,ppszDestEnd,pcchRemaining,dwFlags,pszFormat,argList);
- }
- return hr;
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPI StringCbVPrintfExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,va_list argList);
- STRSAFEAPI StringCbVPrintfExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,va_list argList);
- #define StringCbVPrintfEx __MINGW_NAME_AW(StringCbVPrintfEx)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCbVPrintfExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,va_list argList) {
- HRESULT hr;
- size_t cchDest;
- size_t cchRemaining = 0;
- cchDest = cbDest / sizeof(char);
- if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = StringVPrintfExWorkerA(pszDest,cchDest,cbDest,ppszDestEnd,&cchRemaining,dwFlags,pszFormat,argList);
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
- if(pcbRemaining) {
- *pcbRemaining = (cchRemaining*sizeof(char)) + (cbDest % sizeof(char));
- }
- }
- return hr;
- }
- STRSAFEAPI StringCbVPrintfExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,va_list argList) {
- HRESULT hr;
- size_t cchDest;
- size_t cchRemaining = 0;
- cchDest = cbDest / sizeof(wchar_t);
- if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = StringVPrintfExWorkerW(pszDest,cchDest,cbDest,ppszDestEnd,&cchRemaining,dwFlags,pszFormat,argList);
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
- if(pcbRemaining) {
- *pcbRemaining = (cchRemaining*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t));
- }
- }
- return hr;
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFE_INLINE_API StringCchGetsA(STRSAFE_LPSTR pszDest,size_t cchDest);
- STRSAFE_INLINE_API StringCchGetsW(STRSAFE_LPWSTR pszDest,size_t cchDest);
- #define StringCchGets __MINGW_NAME_AW(StringCchGets)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFE_INLINE_API StringCchGetsA(STRSAFE_LPSTR pszDest,size_t cchDest) {
- HRESULT hr;
- if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- size_t cbDest;
- cbDest = cchDest*sizeof(char);
- hr = StringGetsExWorkerA(pszDest,cchDest,cbDest,NULL,NULL,0);
- }
- return hr;
- }
- STRSAFE_INLINE_API StringCchGetsW(STRSAFE_LPWSTR pszDest,size_t cchDest) {
- HRESULT hr;
- if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- size_t cbDest;
- cbDest = cchDest*sizeof(wchar_t);
- hr = StringGetsExWorkerW(pszDest,cchDest,cbDest,NULL,NULL,0);
- }
- return hr;
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFE_INLINE_API StringCbGetsA(STRSAFE_LPSTR pszDest,size_t cbDest);
- STRSAFE_INLINE_API StringCbGetsW(STRSAFE_LPWSTR pszDest,size_t cbDest);
- #define StringCbGets __MINGW_NAME_AW(StringCbGets)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFE_INLINE_API StringCbGetsA(STRSAFE_LPSTR pszDest,size_t cbDest) {
- HRESULT hr;
- size_t cchDest;
- cchDest = cbDest / sizeof(char);
- if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = StringGetsExWorkerA(pszDest,cchDest,cbDest,NULL,NULL,0);
- return hr;
- }
- STRSAFE_INLINE_API StringCbGetsW(STRSAFE_LPWSTR pszDest,size_t cbDest) {
- HRESULT hr;
- size_t cchDest;
- cchDest = cbDest / sizeof(wchar_t);
- if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = StringGetsExWorkerW(pszDest,cchDest,cbDest,NULL,NULL,0);
- return hr;
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFE_INLINE_API StringCchGetsExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- STRSAFE_INLINE_API StringCchGetsExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags);
- #define StringCchGetsEx __MINGW_NAME_AW(StringCchGetsEx)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFE_INLINE_API StringCchGetsExA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr;
- if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- size_t cbDest;
- cbDest = cchDest*sizeof(char);
- hr = StringGetsExWorkerA(pszDest,cchDest,cbDest,ppszDestEnd,pcchRemaining,dwFlags);
- }
- return hr;
- }
- STRSAFE_INLINE_API StringCchGetsExW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr;
- if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- size_t cbDest;
- cbDest = cchDest*sizeof(wchar_t);
- hr = StringGetsExWorkerW(pszDest,cchDest,cbDest,ppszDestEnd,pcchRemaining,dwFlags);
- }
- return hr;
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFE_INLINE_API StringCbGetsExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
- STRSAFE_INLINE_API StringCbGetsExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags);
- #define StringCbGetsEx __MINGW_NAME_AW(StringCbGetsEx)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFE_INLINE_API StringCbGetsExA(STRSAFE_LPSTR pszDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr;
- size_t cchDest;
- size_t cchRemaining = 0;
- cchDest = cbDest / sizeof(char);
- if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = StringGetsExWorkerA(pszDest,cchDest,cbDest,ppszDestEnd,&cchRemaining,dwFlags);
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER) || (hr==STRSAFE_E_END_OF_FILE)) {
- if(pcbRemaining) *pcbRemaining = (cchRemaining*sizeof(char)) + (cbDest % sizeof(char));
- }
- return hr;
- }
- STRSAFE_INLINE_API StringCbGetsExW(STRSAFE_LPWSTR pszDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcbRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr;
- size_t cchDest;
- size_t cchRemaining = 0;
- cchDest = cbDest / sizeof(wchar_t);
- if(cchDest > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = StringGetsExWorkerW(pszDest,cchDest,cbDest,ppszDestEnd,&cchRemaining,dwFlags);
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER) || (hr==STRSAFE_E_END_OF_FILE)) {
- if(pcbRemaining) *pcbRemaining = (cchRemaining*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t));
- }
- return hr;
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPI StringCchLengthA(STRSAFE_LPCSTR psz,size_t cchMax,size_t *pcchLength);
- STRSAFEAPI StringCchLengthW(STRSAFE_LPCWSTR psz,size_t cchMax,size_t *pcchLength);
- #define StringCchLength __MINGW_NAME_AW(StringCchLength)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCchLengthA(STRSAFE_LPCSTR psz,size_t cchMax,size_t *pcchLength) {
- HRESULT hr;
- if(!psz || (cchMax > STRSAFE_MAX_CCH)) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = StringLengthWorkerA(psz,cchMax,pcchLength);
- if(FAILED(hr) && pcchLength) {
- *pcchLength = 0;
- }
- return hr;
- }
- STRSAFEAPI StringCchLengthW(STRSAFE_LPCWSTR psz,size_t cchMax,size_t *pcchLength) {
- HRESULT hr;
- if(!psz || (cchMax > STRSAFE_MAX_CCH)) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = StringLengthWorkerW(psz,cchMax,pcchLength);
- if(FAILED(hr) && pcchLength) {
- *pcchLength = 0;
- }
- return hr;
- }
- #endif /* !__STRSAFE__NO_INLINE */
- STRSAFEAPI StringCbLengthA(STRSAFE_LPCSTR psz,size_t cbMax,size_t *pcbLength);
- STRSAFEAPI StringCbLengthW(STRSAFE_LPCWSTR psz,size_t cbMax,size_t *pcbLength);
- #define StringCbLength __MINGW_NAME_AW(StringCbLength)
- #ifndef __STRSAFE__NO_INLINE
- STRSAFEAPI StringCbLengthA(STRSAFE_LPCSTR psz,size_t cbMax,size_t *pcbLength) {
- HRESULT hr;
- size_t cchMax;
- size_t cchLength = 0;
- cchMax = cbMax / sizeof(char);
- if(!psz || (cchMax > STRSAFE_MAX_CCH)) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = StringLengthWorkerA(psz,cchMax,&cchLength);
- if(pcbLength) {
- if(SUCCEEDED(hr)) {
- *pcbLength = cchLength*sizeof(char);
- } else {
- *pcbLength = 0;
- }
- }
- return hr;
- }
- STRSAFEAPI StringCbLengthW(STRSAFE_LPCWSTR psz,size_t cbMax,size_t *pcbLength) {
- HRESULT hr;
- size_t cchMax;
- size_t cchLength = 0;
- cchMax = cbMax / sizeof(wchar_t);
- if(!psz || (cchMax > STRSAFE_MAX_CCH)) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = StringLengthWorkerW(psz,cchMax,&cchLength);
- if(pcbLength) {
- if(SUCCEEDED(hr)) {
- *pcbLength = cchLength*sizeof(wchar_t);
- } else {
- *pcbLength = 0;
- }
- }
- return hr;
- }
- STRSAFEAPI StringCopyWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc) {
- HRESULT hr = S_OK;
- if(cchDest==0) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- while(cchDest && (*pszSrc!='\0')) {
- *pszDest++ = *pszSrc++;
- cchDest--;
- }
- if(cchDest==0) {
- pszDest--;
- hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- }
- *pszDest= '\0';
- }
- return hr;
- }
- STRSAFEAPI StringCopyWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc) {
- HRESULT hr = S_OK;
- if(cchDest==0) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- while(cchDest && (*pszSrc!=L'\0')) {
- *pszDest++ = *pszSrc++;
- cchDest--;
- }
- if(cchDest==0) {
- pszDest--;
- hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- }
- *pszDest= L'\0';
- }
- return hr;
- }
- STRSAFEAPI StringCopyExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr = S_OK;
- STRSAFE_LPSTR pszDestEnd = pszDest;
- size_t cchRemaining = 0;
- if(dwFlags & (~STRSAFE_VALID_FLAGS)) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- if(dwFlags & STRSAFE_IGNORE_NULLS) {
- if(!pszDest) {
- if((cchDest!=0) || (cbDest!=0)) hr = STRSAFE_E_INVALID_PARAMETER;
- }
- if(!pszSrc) pszSrc = "";
- }
- if(SUCCEEDED(hr)) {
- if(cchDest==0) {
- pszDestEnd = pszDest;
- cchRemaining = 0;
- if(*pszSrc!='\0') {
- if(!pszDest) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- }
- } else {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- while(cchRemaining && (*pszSrc!='\0')) {
- *pszDestEnd++ = *pszSrc++;
- cchRemaining--;
- }
- if(cchRemaining > 0) {
- if(dwFlags & STRSAFE_FILL_BEHIND_NULL) {
- memset(pszDestEnd + 1,STRSAFE_GET_FILL_PATTERN(dwFlags),((cchRemaining - 1)*sizeof(char)) + (cbDest % sizeof(char)));
- }
- } else {
- pszDestEnd--;
- cchRemaining++;
- hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- }
- *pszDestEnd = '\0';
- }
- }
- }
- if(FAILED(hr)) {
- if(pszDest) {
- if(dwFlags & STRSAFE_FILL_ON_FAILURE) {
- memset(pszDest,STRSAFE_GET_FILL_PATTERN(dwFlags),cbDest);
- if(STRSAFE_GET_FILL_PATTERN(dwFlags)==0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- } else if(cchDest > 0) {
- pszDestEnd = pszDest + cchDest - 1;
- cchRemaining = 1;
- *pszDestEnd = '\0';
- }
- }
- if(dwFlags & (STRSAFE_NULL_ON_FAILURE | STRSAFE_NO_TRUNCATION)) {
- if(cchDest > 0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- *pszDestEnd = '\0';
- }
- }
- }
- }
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
- if(ppszDestEnd) *ppszDestEnd = pszDestEnd;
- if(pcchRemaining) *pcchRemaining = cchRemaining;
- }
- return hr;
- }
- STRSAFEAPI StringCopyExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr = S_OK;
- STRSAFE_LPWSTR pszDestEnd = pszDest;
- size_t cchRemaining = 0;
- if(dwFlags & (~STRSAFE_VALID_FLAGS)) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- if(dwFlags & STRSAFE_IGNORE_NULLS) {
- if(!pszDest) {
- if((cchDest!=0) || (cbDest!=0)) hr = STRSAFE_E_INVALID_PARAMETER;
- }
- if(!pszSrc) pszSrc = L"";
- }
- if(SUCCEEDED(hr)) {
- if(cchDest==0) {
- pszDestEnd = pszDest;
- cchRemaining = 0;
- if(*pszSrc!=L'\0') {
- if(!pszDest) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- }
- } else {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- while(cchRemaining && (*pszSrc!=L'\0')) {
- *pszDestEnd++ = *pszSrc++;
- cchRemaining--;
- }
- if(cchRemaining > 0) {
- if(dwFlags & STRSAFE_FILL_BEHIND_NULL) {
- memset(pszDestEnd + 1,STRSAFE_GET_FILL_PATTERN(dwFlags),((cchRemaining - 1)*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t)));
- }
- } else {
- pszDestEnd--;
- cchRemaining++;
- hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- }
- *pszDestEnd = L'\0';
- }
- }
- }
- if(FAILED(hr)) {
- if(pszDest) {
- if(dwFlags & STRSAFE_FILL_ON_FAILURE) {
- memset(pszDest,STRSAFE_GET_FILL_PATTERN(dwFlags),cbDest);
- if(STRSAFE_GET_FILL_PATTERN(dwFlags)==0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- } else if(cchDest > 0) {
- pszDestEnd = pszDest + cchDest - 1;
- cchRemaining = 1;
- *pszDestEnd = L'\0';
- }
- }
- if(dwFlags & (STRSAFE_NULL_ON_FAILURE | STRSAFE_NO_TRUNCATION)) {
- if(cchDest > 0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- *pszDestEnd = L'\0';
- }
- }
- }
- }
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
- if(ppszDestEnd) *ppszDestEnd = pszDestEnd;
- if(pcchRemaining) *pcchRemaining = cchRemaining;
- }
- return hr;
- }
- STRSAFEAPI StringCopyNWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchSrc) {
- HRESULT hr = S_OK;
- if(cchDest==0) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- while(cchDest && cchSrc && (*pszSrc!='\0')) {
- *pszDest++ = *pszSrc++;
- cchDest--;
- cchSrc--;
- }
- if(cchDest==0) {
- pszDest--;
- hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- }
- *pszDest= '\0';
- }
- return hr;
- }
- STRSAFEAPI StringCopyNWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToCopy) {
- HRESULT hr = S_OK;
- if(cchDest==0) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- while(cchDest && cchToCopy && (*pszSrc!=L'\0')) {
- *pszDest++ = *pszSrc++;
- cchDest--;
- cchToCopy--;
- }
- if(cchDest==0) {
- pszDest--;
- hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- }
- *pszDest= L'\0';
- }
- return hr;
- }
- STRSAFEAPI StringCopyNExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cchToCopy,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr = S_OK;
- STRSAFE_LPSTR pszDestEnd = pszDest;
- size_t cchRemaining = 0;
- if(dwFlags & (~STRSAFE_VALID_FLAGS)) hr = STRSAFE_E_INVALID_PARAMETER;
- else if(cchToCopy > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- if(dwFlags & STRSAFE_IGNORE_NULLS) {
- if(!pszDest) {
- if((cchDest!=0) || (cbDest!=0)) hr = STRSAFE_E_INVALID_PARAMETER;
- }
- if(!pszSrc) pszSrc = "";
- }
- if(SUCCEEDED(hr)) {
- if(cchDest==0) {
- pszDestEnd = pszDest;
- cchRemaining = 0;
- if((cchToCopy!=0) && (*pszSrc!='\0')) {
- if(!pszDest) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- }
- } else {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- while(cchRemaining && cchToCopy && (*pszSrc!='\0')) {
- *pszDestEnd++ = *pszSrc++;
- cchRemaining--;
- cchToCopy--;
- }
- if(cchRemaining > 0) {
- if(dwFlags & STRSAFE_FILL_BEHIND_NULL) {
- memset(pszDestEnd + 1,STRSAFE_GET_FILL_PATTERN(dwFlags),((cchRemaining - 1)*sizeof(char)) + (cbDest % sizeof(char)));
- }
- } else {
- pszDestEnd--;
- cchRemaining++;
- hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- }
- *pszDestEnd = '\0';
- }
- }
- }
- if(FAILED(hr)) {
- if(pszDest) {
- if(dwFlags & STRSAFE_FILL_ON_FAILURE) {
- memset(pszDest,STRSAFE_GET_FILL_PATTERN(dwFlags),cbDest);
- if(STRSAFE_GET_FILL_PATTERN(dwFlags)==0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- } else if(cchDest > 0) {
- pszDestEnd = pszDest + cchDest - 1;
- cchRemaining = 1;
- *pszDestEnd = '\0';
- }
- }
- if(dwFlags & (STRSAFE_NULL_ON_FAILURE | STRSAFE_NO_TRUNCATION)) {
- if(cchDest > 0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- *pszDestEnd = '\0';
- }
- }
- }
- }
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
- if(ppszDestEnd) *ppszDestEnd = pszDestEnd;
- if(pcchRemaining) *pcchRemaining = cchRemaining;
- }
- return hr;
- }
- STRSAFEAPI StringCopyNExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cchToCopy,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr = S_OK;
- STRSAFE_LPWSTR pszDestEnd = pszDest;
- size_t cchRemaining = 0;
- if(dwFlags & (~STRSAFE_VALID_FLAGS)) hr = STRSAFE_E_INVALID_PARAMETER;
- else if(cchToCopy > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- if(dwFlags & STRSAFE_IGNORE_NULLS) {
- if(!pszDest) {
- if((cchDest!=0) || (cbDest!=0)) hr = STRSAFE_E_INVALID_PARAMETER;
- }
- if(!pszSrc) pszSrc = L"";
- }
- if(SUCCEEDED(hr)) {
- if(cchDest==0) {
- pszDestEnd = pszDest;
- cchRemaining = 0;
- if((cchToCopy!=0) && (*pszSrc!=L'\0')) {
- if(!pszDest) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- }
- } else {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- while(cchRemaining && cchToCopy && (*pszSrc!=L'\0')) {
- *pszDestEnd++ = *pszSrc++;
- cchRemaining--;
- cchToCopy--;
- }
- if(cchRemaining > 0) {
- if(dwFlags & STRSAFE_FILL_BEHIND_NULL) {
- memset(pszDestEnd + 1,STRSAFE_GET_FILL_PATTERN(dwFlags),((cchRemaining - 1)*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t)));
- }
- } else {
- pszDestEnd--;
- cchRemaining++;
- hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- }
- *pszDestEnd = L'\0';
- }
- }
- }
- if(FAILED(hr)) {
- if(pszDest) {
- if(dwFlags & STRSAFE_FILL_ON_FAILURE) {
- memset(pszDest,STRSAFE_GET_FILL_PATTERN(dwFlags),cbDest);
- if(STRSAFE_GET_FILL_PATTERN(dwFlags)==0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- } else if(cchDest > 0) {
- pszDestEnd = pszDest + cchDest - 1;
- cchRemaining = 1;
- *pszDestEnd = L'\0';
- }
- }
- if(dwFlags & (STRSAFE_NULL_ON_FAILURE | STRSAFE_NO_TRUNCATION)) {
- if(cchDest > 0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- *pszDestEnd = L'\0';
- }
- }
- }
- }
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
- if(ppszDestEnd) *ppszDestEnd = pszDestEnd;
- if(pcchRemaining) *pcchRemaining = cchRemaining;
- }
- return hr;
- }
- STRSAFEAPI StringCatWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc) {
- HRESULT hr;
- size_t cchDestLength;
- hr = StringLengthWorkerA(pszDest,cchDest,&cchDestLength);
- if(SUCCEEDED(hr)) hr = StringCopyWorkerA(pszDest + cchDestLength,cchDest - cchDestLength,pszSrc);
- return hr;
- }
- STRSAFEAPI StringCatWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc) {
- HRESULT hr;
- size_t cchDestLength;
- hr = StringLengthWorkerW(pszDest,cchDest,&cchDestLength);
- if(SUCCEEDED(hr)) hr = StringCopyWorkerW(pszDest + cchDestLength,cchDest - cchDestLength,pszSrc);
- return hr;
- }
- STRSAFEAPI StringCatExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr = S_OK;
- STRSAFE_LPSTR pszDestEnd = pszDest;
- size_t cchRemaining = 0;
- if(dwFlags & (~STRSAFE_VALID_FLAGS)) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- size_t cchDestLength;
- if(dwFlags & STRSAFE_IGNORE_NULLS) {
- if(!pszDest) {
- if((cchDest==0) && (cbDest==0)) cchDestLength = 0;
- else hr = STRSAFE_E_INVALID_PARAMETER;
- } else {
- hr = StringLengthWorkerA(pszDest,cchDest,&cchDestLength);
- if(SUCCEEDED(hr)) {
- pszDestEnd = pszDest + cchDestLength;
- cchRemaining = cchDest - cchDestLength;
- }
- }
- if(!pszSrc) pszSrc = "";
- } else {
- hr = StringLengthWorkerA(pszDest,cchDest,&cchDestLength);
- if(SUCCEEDED(hr)) {
- pszDestEnd = pszDest + cchDestLength;
- cchRemaining = cchDest - cchDestLength;
- }
- }
- if(SUCCEEDED(hr)) {
- if(cchDest==0) {
- if(*pszSrc!='\0') {
- if(!pszDest) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- }
- } else hr = StringCopyExWorkerA(pszDestEnd,cchRemaining,(cchRemaining*sizeof(char)) + (cbDest % sizeof(char)),pszSrc,&pszDestEnd,&cchRemaining,dwFlags & (~(STRSAFE_FILL_ON_FAILURE | STRSAFE_NULL_ON_FAILURE)));
- }
- }
- if(FAILED(hr)) {
- if(pszDest) {
- if(dwFlags & STRSAFE_FILL_ON_FAILURE) {
- memset(pszDest,STRSAFE_GET_FILL_PATTERN(dwFlags),cbDest);
- if(STRSAFE_GET_FILL_PATTERN(dwFlags)==0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- } else if(cchDest > 0) {
- pszDestEnd = pszDest + cchDest - 1;
- cchRemaining = 1;
- *pszDestEnd = '\0';
- }
- }
- if(dwFlags & STRSAFE_NULL_ON_FAILURE) {
- if(cchDest > 0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- *pszDestEnd = '\0';
- }
- }
- }
- }
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
- if(ppszDestEnd) *ppszDestEnd = pszDestEnd;
- if(pcchRemaining) *pcchRemaining = cchRemaining;
- }
- return hr;
- }
- STRSAFEAPI StringCatExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr = S_OK;
- STRSAFE_LPWSTR pszDestEnd = pszDest;
- size_t cchRemaining = 0;
- if(dwFlags & (~STRSAFE_VALID_FLAGS)) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- size_t cchDestLength;
- if(dwFlags & STRSAFE_IGNORE_NULLS) {
- if(!pszDest) {
- if((cchDest==0) && (cbDest==0)) cchDestLength = 0;
- else hr = STRSAFE_E_INVALID_PARAMETER;
- } else {
- hr = StringLengthWorkerW(pszDest,cchDest,&cchDestLength);
- if(SUCCEEDED(hr)) {
- pszDestEnd = pszDest + cchDestLength;
- cchRemaining = cchDest - cchDestLength;
- }
- }
- if(!pszSrc) pszSrc = L"";
- } else {
- hr = StringLengthWorkerW(pszDest,cchDest,&cchDestLength);
- if(SUCCEEDED(hr)) {
- pszDestEnd = pszDest + cchDestLength;
- cchRemaining = cchDest - cchDestLength;
- }
- }
- if(SUCCEEDED(hr)) {
- if(cchDest==0) {
- if(*pszSrc!=L'\0') {
- if(!pszDest) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- }
- } else hr = StringCopyExWorkerW(pszDestEnd,cchRemaining,(cchRemaining*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t)),pszSrc,&pszDestEnd,&cchRemaining,dwFlags & (~(STRSAFE_FILL_ON_FAILURE | STRSAFE_NULL_ON_FAILURE)));
- }
- }
- if(FAILED(hr)) {
- if(pszDest) {
- if(dwFlags & STRSAFE_FILL_ON_FAILURE) {
- memset(pszDest,STRSAFE_GET_FILL_PATTERN(dwFlags),cbDest);
- if(STRSAFE_GET_FILL_PATTERN(dwFlags)==0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- } else if(cchDest > 0) {
- pszDestEnd = pszDest + cchDest - 1;
- cchRemaining = 1;
- *pszDestEnd = L'\0';
- }
- }
- if(dwFlags & STRSAFE_NULL_ON_FAILURE) {
- if(cchDest > 0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- *pszDestEnd = L'\0';
- }
- }
- }
- }
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
- if(ppszDestEnd) *ppszDestEnd = pszDestEnd;
- if(pcchRemaining) *pcchRemaining = cchRemaining;
- }
- return hr;
- }
- STRSAFEAPI StringCatNWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszSrc,size_t cchToAppend) {
- HRESULT hr;
- size_t cchDestLength;
- hr = StringLengthWorkerA(pszDest,cchDest,&cchDestLength);
- if(SUCCEEDED(hr)) hr = StringCopyNWorkerA(pszDest + cchDestLength,cchDest - cchDestLength,pszSrc,cchToAppend);
- return hr;
- }
- STRSAFEAPI StringCatNWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszSrc,size_t cchToAppend) {
- HRESULT hr;
- size_t cchDestLength;
- hr = StringLengthWorkerW(pszDest,cchDest,&cchDestLength);
- if(SUCCEEDED(hr)) hr = StringCopyNWorkerW(pszDest + cchDestLength,cchDest - cchDestLength,pszSrc,cchToAppend);
- return hr;
- }
- STRSAFEAPI StringCatNExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCSTR pszSrc,size_t cchToAppend,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr = S_OK;
- STRSAFE_LPSTR pszDestEnd = pszDest;
- size_t cchRemaining = 0;
- size_t cchDestLength = 0;
- if(dwFlags & (~STRSAFE_VALID_FLAGS)) hr = STRSAFE_E_INVALID_PARAMETER;
- else if(cchToAppend > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- if(dwFlags & STRSAFE_IGNORE_NULLS) {
- if(!pszDest) {
- if((cchDest==0) && (cbDest==0)) cchDestLength = 0;
- else hr = STRSAFE_E_INVALID_PARAMETER;
- } else {
- hr = StringLengthWorkerA(pszDest,cchDest,&cchDestLength);
- if(SUCCEEDED(hr)) {
- pszDestEnd = pszDest + cchDestLength;
- cchRemaining = cchDest - cchDestLength;
- }
- }
- if(!pszSrc) pszSrc = "";
- } else {
- hr = StringLengthWorkerA(pszDest,cchDest,&cchDestLength);
- if(SUCCEEDED(hr)) {
- pszDestEnd = pszDest + cchDestLength;
- cchRemaining = cchDest - cchDestLength;
- }
- }
- if(SUCCEEDED(hr)) {
- if(cchDest==0) {
- if((cchToAppend!=0) && (*pszSrc!='\0')) {
- if(!pszDest) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- }
- } else hr = StringCopyNExWorkerA(pszDestEnd,cchRemaining,(cchRemaining*sizeof(char)) + (cbDest % sizeof(char)),pszSrc,cchToAppend,&pszDestEnd,&cchRemaining,dwFlags & (~(STRSAFE_FILL_ON_FAILURE | STRSAFE_NULL_ON_FAILURE)));
- }
- }
- if(FAILED(hr)) {
- if(pszDest) {
- if(dwFlags & STRSAFE_FILL_ON_FAILURE) {
- memset(pszDest,STRSAFE_GET_FILL_PATTERN(dwFlags),cbDest);
- if(STRSAFE_GET_FILL_PATTERN(dwFlags)==0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- } else if(cchDest > 0) {
- pszDestEnd = pszDest + cchDest - 1;
- cchRemaining = 1;
- *pszDestEnd = '\0';
- }
- }
- if(dwFlags & (STRSAFE_NULL_ON_FAILURE)) {
- if(cchDest > 0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- *pszDestEnd = '\0';
- }
- }
- }
- }
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
- if(ppszDestEnd) *ppszDestEnd = pszDestEnd;
- if(pcchRemaining) *pcchRemaining = cchRemaining;
- }
- return hr;
- }
- STRSAFEAPI StringCatNExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPCWSTR pszSrc,size_t cchToAppend,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr = S_OK;
- STRSAFE_LPWSTR pszDestEnd = pszDest;
- size_t cchRemaining = 0;
- size_t cchDestLength = 0;
- if(dwFlags & (~STRSAFE_VALID_FLAGS)) hr = STRSAFE_E_INVALID_PARAMETER;
- else if(cchToAppend > STRSAFE_MAX_CCH) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- if(dwFlags & STRSAFE_IGNORE_NULLS) {
- if(!pszDest) {
- if((cchDest==0) && (cbDest==0)) cchDestLength = 0;
- else hr = STRSAFE_E_INVALID_PARAMETER;
- } else {
- hr = StringLengthWorkerW(pszDest,cchDest,&cchDestLength);
- if(SUCCEEDED(hr)) {
- pszDestEnd = pszDest + cchDestLength;
- cchRemaining = cchDest - cchDestLength;
- }
- }
- if(!pszSrc) pszSrc = L"";
- } else {
- hr = StringLengthWorkerW(pszDest,cchDest,&cchDestLength);
- if(SUCCEEDED(hr)) {
- pszDestEnd = pszDest + cchDestLength;
- cchRemaining = cchDest - cchDestLength;
- }
- }
- if(SUCCEEDED(hr)) {
- if(cchDest==0) {
- if((cchToAppend!=0) && (*pszSrc!=L'\0')) {
- if(!pszDest) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- }
- } else hr = StringCopyNExWorkerW(pszDestEnd,cchRemaining,(cchRemaining*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t)),pszSrc,cchToAppend,&pszDestEnd,&cchRemaining,dwFlags & (~(STRSAFE_FILL_ON_FAILURE | STRSAFE_NULL_ON_FAILURE)));
- }
- }
- if(FAILED(hr)) {
- if(pszDest) {
- if(dwFlags & STRSAFE_FILL_ON_FAILURE) {
- memset(pszDest,STRSAFE_GET_FILL_PATTERN(dwFlags),cbDest);
- if(STRSAFE_GET_FILL_PATTERN(dwFlags)==0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- } else if(cchDest > 0) {
- pszDestEnd = pszDest + cchDest - 1;
- cchRemaining = 1;
- *pszDestEnd = L'\0';
- }
- }
- if(dwFlags & (STRSAFE_NULL_ON_FAILURE)) {
- if(cchDest > 0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- *pszDestEnd = L'\0';
- }
- }
- }
- }
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
- if(ppszDestEnd) *ppszDestEnd = pszDestEnd;
- if(pcchRemaining) *pcchRemaining = cchRemaining;
- }
- return hr;
- }
- STRSAFEAPI StringVPrintfWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,STRSAFE_LPCSTR pszFormat,va_list argList) {
- HRESULT hr = S_OK;
- if(cchDest==0) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- int iRet;
- size_t cchMax;
- cchMax = cchDest - 1;
- iRet = _vsnprintf(pszDest,cchMax,pszFormat,argList);
- if((iRet < 0) || (((size_t)iRet) > cchMax)) {
- pszDest += cchMax;
- *pszDest = '\0';
- hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- } else if(((size_t)iRet)==cchMax) {
- pszDest += cchMax;
- *pszDest = '\0';
- }
- }
- return hr;
- }
- STRSAFEAPI StringVPrintfWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,STRSAFE_LPCWSTR pszFormat,va_list argList) {
- HRESULT hr = S_OK;
- if(cchDest==0) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- int iRet;
- size_t cchMax;
- cchMax = cchDest - 1;
- iRet = _vsnwprintf(pszDest,cchMax,pszFormat,argList);
- if((iRet < 0) || (((size_t)iRet) > cchMax)) {
- pszDest += cchMax;
- *pszDest = L'\0';
- hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- } else if(((size_t)iRet)==cchMax) {
- pszDest += cchMax;
- *pszDest = L'\0';
- }
- }
- return hr;
- }
- STRSAFEAPI StringVPrintfExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCSTR pszFormat,va_list argList) {
- HRESULT hr = S_OK;
- STRSAFE_LPSTR pszDestEnd = pszDest;
- size_t cchRemaining = 0;
- if(dwFlags & (~STRSAFE_VALID_FLAGS)) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- if(dwFlags & STRSAFE_IGNORE_NULLS) {
- if(!pszDest) {
- if((cchDest!=0) || (cbDest!=0)) hr = STRSAFE_E_INVALID_PARAMETER;
- }
- if(!pszFormat) pszFormat = "";
- }
- if(SUCCEEDED(hr)) {
- if(cchDest==0) {
- pszDestEnd = pszDest;
- cchRemaining = 0;
- if(*pszFormat!='\0') {
- if(!pszDest) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- }
- } else {
- int iRet;
- size_t cchMax;
- cchMax = cchDest - 1;
- iRet = _vsnprintf(pszDest,cchMax,pszFormat,argList);
- if((iRet < 0) || (((size_t)iRet) > cchMax)) {
- pszDestEnd = pszDest + cchMax;
- cchRemaining = 1;
- *pszDestEnd = '\0';
- hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- } else if(((size_t)iRet)==cchMax) {
- pszDestEnd = pszDest + cchMax;
- cchRemaining = 1;
- *pszDestEnd = '\0';
- } else if(((size_t)iRet) < cchMax) {
- pszDestEnd = pszDest + iRet;
- cchRemaining = cchDest - iRet;
- if(dwFlags & STRSAFE_FILL_BEHIND_NULL) {
- memset(pszDestEnd + 1,STRSAFE_GET_FILL_PATTERN(dwFlags),((cchRemaining - 1)*sizeof(char)) + (cbDest % sizeof(char)));
- }
- }
- }
- }
- }
- if(FAILED(hr)) {
- if(pszDest) {
- if(dwFlags & STRSAFE_FILL_ON_FAILURE) {
- memset(pszDest,STRSAFE_GET_FILL_PATTERN(dwFlags),cbDest);
- if(STRSAFE_GET_FILL_PATTERN(dwFlags)==0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- } else if(cchDest > 0) {
- pszDestEnd = pszDest + cchDest - 1;
- cchRemaining = 1;
- *pszDestEnd = '\0';
- }
- }
- if(dwFlags & (STRSAFE_NULL_ON_FAILURE | STRSAFE_NO_TRUNCATION)) {
- if(cchDest > 0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- *pszDestEnd = '\0';
- }
- }
- }
- }
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
- if(ppszDestEnd) *ppszDestEnd = pszDestEnd;
- if(pcchRemaining) *pcchRemaining = cchRemaining;
- }
- return hr;
- }
- STRSAFEAPI StringVPrintfExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags,STRSAFE_LPCWSTR pszFormat,va_list argList) {
- HRESULT hr = S_OK;
- STRSAFE_LPWSTR pszDestEnd = pszDest;
- size_t cchRemaining = 0;
- if(dwFlags & (~STRSAFE_VALID_FLAGS)) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- if(dwFlags & STRSAFE_IGNORE_NULLS) {
- if(!pszDest) {
- if((cchDest!=0) || (cbDest!=0)) hr = STRSAFE_E_INVALID_PARAMETER;
- }
- if(!pszFormat) pszFormat = L"";
- }
- if(SUCCEEDED(hr)) {
- if(cchDest==0) {
- pszDestEnd = pszDest;
- cchRemaining = 0;
- if(*pszFormat!=L'\0') {
- if(!pszDest) hr = STRSAFE_E_INVALID_PARAMETER;
- else hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- }
- } else {
- int iRet;
- size_t cchMax;
- cchMax = cchDest - 1;
- iRet = _vsnwprintf(pszDest,cchMax,pszFormat,argList);
- if((iRet < 0) || (((size_t)iRet) > cchMax)) {
- pszDestEnd = pszDest + cchMax;
- cchRemaining = 1;
- *pszDestEnd = L'\0';
- hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- } else if(((size_t)iRet)==cchMax) {
- pszDestEnd = pszDest + cchMax;
- cchRemaining = 1;
- *pszDestEnd = L'\0';
- } else if(((size_t)iRet) < cchMax) {
- pszDestEnd = pszDest + iRet;
- cchRemaining = cchDest - iRet;
- if(dwFlags & STRSAFE_FILL_BEHIND_NULL) {
- memset(pszDestEnd + 1,STRSAFE_GET_FILL_PATTERN(dwFlags),((cchRemaining - 1)*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t)));
- }
- }
- }
- }
- }
- if(FAILED(hr)) {
- if(pszDest) {
- if(dwFlags & STRSAFE_FILL_ON_FAILURE) {
- memset(pszDest,STRSAFE_GET_FILL_PATTERN(dwFlags),cbDest);
- if(STRSAFE_GET_FILL_PATTERN(dwFlags)==0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- } else if(cchDest > 0) {
- pszDestEnd = pszDest + cchDest - 1;
- cchRemaining = 1;
- *pszDestEnd = L'\0';
- }
- }
- if(dwFlags & (STRSAFE_NULL_ON_FAILURE | STRSAFE_NO_TRUNCATION)) {
- if(cchDest > 0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- *pszDestEnd = L'\0';
- }
- }
- }
- }
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER)) {
- if(ppszDestEnd) *ppszDestEnd = pszDestEnd;
- if(pcchRemaining) *pcchRemaining = cchRemaining;
- }
- return hr;
- }
- STRSAFEAPI StringLengthWorkerA(STRSAFE_LPCSTR psz,size_t cchMax,size_t *pcchLength) {
- HRESULT hr = S_OK;
- size_t cchMaxPrev = cchMax;
- while(cchMax && (*psz!='\0')) {
- psz++;
- cchMax--;
- }
- if(cchMax==0) hr = STRSAFE_E_INVALID_PARAMETER;
- if(pcchLength) {
- if(SUCCEEDED(hr)) *pcchLength = cchMaxPrev - cchMax;
- else *pcchLength = 0;
- }
- return hr;
- }
- STRSAFEAPI StringLengthWorkerW(STRSAFE_LPCWSTR psz,size_t cchMax,size_t *pcchLength) {
- HRESULT hr = S_OK;
- size_t cchMaxPrev = cchMax;
- while(cchMax && (*psz!=L'\0')) {
- psz++;
- cchMax--;
- }
- if(cchMax==0) hr = STRSAFE_E_INVALID_PARAMETER;
- if(pcchLength) {
- if(SUCCEEDED(hr)) *pcchLength = cchMaxPrev - cchMax;
- else *pcchLength = 0;
- }
- return hr;
- }
- STRSAFE_INLINE_API StringGetsExWorkerA(STRSAFE_LPSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr = S_OK;
- STRSAFE_LPSTR pszDestEnd = pszDest;
- size_t cchRemaining = 0;
- if(dwFlags & (~STRSAFE_VALID_FLAGS)) hr = STRSAFE_E_INVALID_PARAMETER;
- else {
- if(dwFlags & STRSAFE_IGNORE_NULLS) {
- if(!pszDest) {
- if((cchDest!=0) || (cbDest!=0)) hr = STRSAFE_E_INVALID_PARAMETER;
- }
- }
- if(SUCCEEDED(hr)) {
- if(cchDest <= 1) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- if(cchDest==1) *pszDestEnd = '\0';
- hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- } else {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- while(cchRemaining > 1) {
- char ch;
- int i = getc(stdin);
- if(i==EOF) {
- if(pszDestEnd==pszDest) hr = STRSAFE_E_END_OF_FILE;
- break;
- }
- ch = (char)i;
- if(ch=='\n') break;
- *pszDestEnd = ch;
- pszDestEnd++;
- cchRemaining--;
- }
- if(cchRemaining > 0) {
- if(dwFlags & STRSAFE_FILL_BEHIND_NULL) {
- memset(pszDestEnd + 1,STRSAFE_GET_FILL_PATTERN(dwFlags),((cchRemaining - 1)*sizeof(char)) + (cbDest % sizeof(char)));
- }
- }
- *pszDestEnd = '\0';
- }
- }
- }
- if(FAILED(hr)) {
- if(pszDest) {
- if(dwFlags & STRSAFE_FILL_ON_FAILURE) {
- memset(pszDest,STRSAFE_GET_FILL_PATTERN(dwFlags),cbDest);
- if(STRSAFE_GET_FILL_PATTERN(dwFlags)==0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- } else if(cchDest > 0) {
- pszDestEnd = pszDest + cchDest - 1;
- cchRemaining = 1;
- *pszDestEnd = '\0';
- }
- }
- if(dwFlags & (STRSAFE_NULL_ON_FAILURE | STRSAFE_NO_TRUNCATION)) {
- if(cchDest > 0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- *pszDestEnd = '\0';
- }
- }
- }
- }
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER) || (hr==STRSAFE_E_END_OF_FILE)) {
- if(ppszDestEnd) *ppszDestEnd = pszDestEnd;
- if(pcchRemaining) *pcchRemaining = cchRemaining;
- }
- return hr;
- }
- STRSAFE_INLINE_API StringGetsExWorkerW(STRSAFE_LPWSTR pszDest,size_t cchDest,size_t cbDest,STRSAFE_LPWSTR *ppszDestEnd,size_t *pcchRemaining,unsigned __LONG32 dwFlags) {
- HRESULT hr = S_OK;
- STRSAFE_LPWSTR pszDestEnd = pszDest;
- size_t cchRemaining = 0;
- if(dwFlags & (~STRSAFE_VALID_FLAGS)) {
- hr = STRSAFE_E_INVALID_PARAMETER;
- } else {
- if(dwFlags & STRSAFE_IGNORE_NULLS) {
- if(!pszDest) {
- if((cchDest!=0) || (cbDest!=0)) hr = STRSAFE_E_INVALID_PARAMETER;
- }
- }
- if(SUCCEEDED(hr)) {
- if(cchDest <= 1) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- if(cchDest==1) *pszDestEnd = L'\0';
- hr = STRSAFE_E_INSUFFICIENT_BUFFER;
- } else {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- while(cchRemaining > 1) {
- wchar_t ch = getwc(stdin);
- if(ch==WEOF) {
- if(pszDestEnd==pszDest) hr = STRSAFE_E_END_OF_FILE;
- break;
- }
- if(ch==L'\n') break;
- *pszDestEnd = ch;
- pszDestEnd++;
- cchRemaining--;
- }
- if(cchRemaining > 0) {
- if(dwFlags & STRSAFE_FILL_BEHIND_NULL) {
- memset(pszDestEnd + 1,STRSAFE_GET_FILL_PATTERN(dwFlags),((cchRemaining - 1)*sizeof(wchar_t)) + (cbDest % sizeof(wchar_t)));
- }
- }
- *pszDestEnd = L'\0';
- }
- }
- }
- if(FAILED(hr)) {
- if(pszDest) {
- if(dwFlags & STRSAFE_FILL_ON_FAILURE) {
- memset(pszDest,STRSAFE_GET_FILL_PATTERN(dwFlags),cbDest);
- if(STRSAFE_GET_FILL_PATTERN(dwFlags)==0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- } else if(cchDest > 0) {
- pszDestEnd = pszDest + cchDest - 1;
- cchRemaining = 1;
- *pszDestEnd = L'\0';
- }
- }
- if(dwFlags & (STRSAFE_NULL_ON_FAILURE | STRSAFE_NO_TRUNCATION)) {
- if(cchDest > 0) {
- pszDestEnd = pszDest;
- cchRemaining = cchDest;
- *pszDestEnd = L'\0';
- }
- }
- }
- }
- if(SUCCEEDED(hr) || (hr==STRSAFE_E_INSUFFICIENT_BUFFER) || (hr==STRSAFE_E_END_OF_FILE)) {
- if(ppszDestEnd) *ppszDestEnd = pszDestEnd;
- if(pcchRemaining) *pcchRemaining = cchRemaining;
- }
- return hr;
- }
- #endif /* !__STRSAFE__NO_INLINE */
- #define StringCopyWorkerA StringCopyWorkerA_instead_use_StringCchCopyA_or_StringCchCopyExA;
- #define StringCopyWorkerW StringCopyWorkerW_instead_use_StringCchCopyW_or_StringCchCopyExW;
- #define StringCopyExWorkerA StringCopyExWorkerA_instead_use_StringCchCopyA_or_StringCchCopyExA;
- #define StringCopyExWorkerW StringCopyExWorkerW_instead_use_StringCchCopyW_or_StringCchCopyExW;
- #define StringCatWorkerA StringCatWorkerA_instead_use_StringCchCatA_or_StringCchCatExA;
- #define StringCatWorkerW StringCatWorkerW_instead_use_StringCchCatW_or_StringCchCatExW;
- #define StringCatExWorkerA StringCatExWorkerA_instead_use_StringCchCatA_or_StringCchCatExA;
- #define StringCatExWorkerW StringCatExWorkerW_instead_use_StringCchCatW_or_StringCchCatExW;
- #define StringCatNWorkerA StringCatNWorkerA_instead_use_StringCchCatNA_or_StrincCbCatNA;
- #define StringCatNWorkerW StringCatNWorkerW_instead_use_StringCchCatNW_or_StringCbCatNW;
- #define StringCatNExWorkerA StringCatNExWorkerA_instead_use_StringCchCatNExA_or_StringCbCatNExA;
- #define StringCatNExWorkerW StringCatNExWorkerW_instead_use_StringCchCatNExW_or_StringCbCatNExW;
- #define StringVPrintfWorkerA StringVPrintfWorkerA_instead_use_StringCchVPrintfA_or_StringCchVPrintfExA;
- #define StringVPrintfWorkerW StringVPrintfWorkerW_instead_use_StringCchVPrintfW_or_StringCchVPrintfExW;
- #define StringVPrintfExWorkerA StringVPrintfExWorkerA_instead_use_StringCchVPrintfA_or_StringCchVPrintfExA;
- #define StringVPrintfExWorkerW StringVPrintfExWorkerW_instead_use_StringCchVPrintfW_or_StringCchVPrintfExW;
- #define StringLengthWorkerA StringLengthWorkerA_instead_use_StringCchLengthA_or_StringCbLengthA;
- #define StringLengthWorkerW StringLengthWorkerW_instead_use_StringCchLengthW_or_StringCbLengthW;
- #define StringGetsExWorkerA StringGetsExWorkerA_instead_use_StringCchGetsA_or_StringCbGetsA
- #define StringGetsExWorkerW StringGetsExWorkerW_instead_use_StringCchGetsW_or_StringCbGetsW
- #ifndef STRSAFE_NO_DEPRECATE
- #undef strcpy
- #define strcpy strcpy_instead_use_StringCbCopyA_or_StringCchCopyA;
- #undef wcscpy
- #define wcscpy wcscpy_instead_use_StringCbCopyW_or_StringCchCopyW;
- #undef strcat
- #define strcat strcat_instead_use_StringCbCatA_or_StringCchCatA;
- #undef wcscat
- #define wcscat wcscat_instead_use_StringCbCatW_or_StringCchCatW;
- #undef sprintf
- #define sprintf sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA;
- #undef swprintf
- #define swprintf swprintf_instead_use_StringCbPrintfW_or_StringCchPrintfW;
- #undef vsprintf
- #define vsprintf vsprintf_instead_use_StringCbVPrintfA_or_StringCchVPrintfA;
- #undef vswprintf
- #define vswprintf vswprintf_instead_use_StringCbVPrintfW_or_StringCchVPrintfW;
- #undef _snprintf
- #define _snprintf _snprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA;
- #undef _snwprintf
- #define _snwprintf _snwprintf_instead_use_StringCbPrintfW_or_StringCchPrintfW;
- #undef _vsnprintf
- #define _vsnprintf _vsnprintf_instead_use_StringCbVPrintfA_or_StringCchVPrintfA;
- #undef _vsnwprintf
- #define _vsnwprintf _vsnwprintf_instead_use_StringCbVPrintfW_or_StringCchVPrintfW;
- #undef strcpyA
- #define strcpyA strcpyA_instead_use_StringCbCopyA_or_StringCchCopyA;
- #undef strcpyW
- #define strcpyW strcpyW_instead_use_StringCbCopyW_or_StringCchCopyW;
- #undef lstrcpy
- #define lstrcpy lstrcpy_instead_use_StringCbCopy_or_StringCchCopy;
- #undef lstrcpyA
- #define lstrcpyA lstrcpyA_instead_use_StringCbCopyA_or_StringCchCopyA;
- #undef lstrcpyW
- #define lstrcpyW lstrcpyW_instead_use_StringCbCopyW_or_StringCchCopyW;
- #undef StrCpy
- #define StrCpy StrCpy_instead_use_StringCbCopy_or_StringCchCopy;
- #undef StrCpyA
- #define StrCpyA StrCpyA_instead_use_StringCbCopyA_or_StringCchCopyA;
- #undef StrCpyW
- #define StrCpyW StrCpyW_instead_use_StringCbCopyW_or_StringCchCopyW;
- #undef _tcscpy
- #define _tcscpy _tcscpy_instead_use_StringCbCopy_or_StringCchCopy;
- #undef _ftcscpy
- #define _ftcscpy _ftcscpy_instead_use_StringCbCopy_or_StringCchCopy;
- #undef lstrcat
- #define lstrcat lstrcat_instead_use_StringCbCat_or_StringCchCat;
- #undef lstrcatA
- #define lstrcatA lstrcatA_instead_use_StringCbCatA_or_StringCchCatA;
- #undef lstrcatW
- #define lstrcatW lstrcatW_instead_use_StringCbCatW_or_StringCchCatW;
- #undef StrCat
- #define StrCat StrCat_instead_use_StringCbCat_or_StringCchCat;
- #undef StrCatA
- #define StrCatA StrCatA_instead_use_StringCbCatA_or_StringCchCatA;
- #undef StrCatW
- #define StrCatW StrCatW_instead_use_StringCbCatW_or_StringCchCatW;
- #undef StrNCat
- #define StrNCat StrNCat_instead_use_StringCbCatN_or_StringCchCatN;
- #undef StrNCatA
- #define StrNCatA StrNCatA_instead_use_StringCbCatNA_or_StringCchCatNA;
- #undef StrNCatW
- #define StrNCatW StrNCatW_instead_use_StringCbCatNW_or_StringCchCatNW;
- #undef StrCatN
- #define StrCatN StrCatN_instead_use_StringCbCatN_or_StringCchCatN;
- #undef StrCatNA
- #define StrCatNA StrCatNA_instead_use_StringCbCatNA_or_StringCchCatNA;
- #undef StrCatNW
- #define StrCatNW StrCatNW_instead_use_StringCbCatNW_or_StringCchCatNW;
- #undef _tcscat
- #define _tcscat _tcscat_instead_use_StringCbCat_or_StringCchCat;
- #undef _ftcscat
- #define _ftcscat _ftcscat_instead_use_StringCbCat_or_StringCchCat;
- #undef wsprintf
- #define wsprintf wsprintf_instead_use_StringCbPrintf_or_StringCchPrintf;
- #undef wsprintfA
- #define wsprintfA wsprintfA_instead_use_StringCbPrintfA_or_StringCchPrintfA;
- #undef wsprintfW
- #define wsprintfW wsprintfW_instead_use_StringCbPrintfW_or_StringCchPrintfW;
- #undef wvsprintf
- #define wvsprintf wvsprintf_instead_use_StringCbVPrintf_or_StringCchVPrintf;
- #undef wvsprintfA
- #define wvsprintfA wvsprintfA_instead_use_StringCbVPrintfA_or_StringCchVPrintfA;
- #undef wvsprintfW
- #define wvsprintfW wvsprintfW_instead_use_StringCbVPrintfW_or_StringCchVPrintfW;
- #undef _vstprintf
- #define _vstprintf _vstprintf_instead_use_StringCbVPrintf_or_StringCchVPrintf;
- #undef _vsntprintf
- #define _vsntprintf _vsntprintf_instead_use_StringCbVPrintf_or_StringCchVPrintf;
- #undef _stprintf
- #define _stprintf _stprintf_instead_use_StringCbPrintf_or_StringCchPrintf;
- #undef _sntprintf
- #define _sntprintf _sntprintf_instead_use_StringCbPrintf_or_StringCchPrintf;
- #undef _getts
- #define _getts _getts_instead_use_StringCbGets_or_StringCchGets;
- #undef gets
- #define gets _gets_instead_use_StringCbGetsA_or_StringCchGetsA;
- #undef _getws
- #define _getws _getws_instead_use_StringCbGetsW_or_StringCchGetsW;
- #endif
- #endif
|