本文整理汇总了C++中VString::Validate方法的典型用法代码示例。如果您正苦于以下问题:C++ VString::Validate方法的具体用法?C++ VString::Validate怎么用?C++ VString::Validate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VString
的用法示例。
在下文中一共展示了VString::Validate方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: JSStringGetLength
bool JS4D::StringToVString( StringRef inJSString, VString& outString)
{
bool ok;
if (inJSString != NULL)
{
size_t length = JSStringGetLength( inJSString);
UniChar *p = outString.GetCPointerForWrite( length);
if (p != NULL)
{
::memcpy( p, JSStringGetCharactersPtr( inJSString), length * sizeof( UniChar));
ok = outString.Validate( length);
}
else
{
outString.Clear();
ok = false;
}
}
else
{
ok = false;
outString.Clear();
}
return ok;
}
示例2: GetString
void VUUID::GetString(VString& outValue) const
{
if (outValue.EnsureSize(32))
{
UniChar* ptr = outValue.GetCPointerForWrite();
for (sLONG index = 0 ; index < 16 ; ++index)
{
uWORD nibble = (uWORD) (fData.fBytes[index] / 16);
if (nibble < 10)
ptr[index * 2] = (UniChar) (CHAR_DIGIT_ZERO + nibble);
else
ptr[index * 2] = (UniChar) (CHAR_LATIN_CAPITAL_LETTER_A + (nibble - 10));
nibble = (uWORD) ((fData.fBytes[index] % 16));
if (nibble < 10)
ptr[index * 2 + 1] = (UniChar) (CHAR_DIGIT_ZERO + nibble);
else
ptr[index * 2 + 1] = (UniChar) (CHAR_LATIN_CAPITAL_LETTER_A + (nibble - 10));
}
outValue.Validate(32);
}
}
示例3: RetainSystemFolder
VError XWinFolder::RetainSystemFolder( ESystemFolderKind inFolderKind, bool inCreateFolder, VFolder **outFolder )
{
VString folderPath;
UniChar path[4096];
size_t maxLength = sizeof( path)/sizeof( UniChar);
path[maxLength-2]=0;
VFolder* sysFolder = NULL;
DWORD winErr = ERROR_PATH_NOT_FOUND;
switch( inFolderKind)
{
case eFK_Executable:
{
DWORD pathLength = ::GetModuleFileNameW( NULL, path, (DWORD) maxLength);
if (testAssert( pathLength != 0 && !path[maxLength-2]))
{
folderPath.FromUniCString( path );
VFile exeFile( folderPath );
sysFolder = exeFile.RetainParentFolder();
winErr = 0;
}
break;
}
case eFK_Temporary:
{
DWORD length = ::GetTempPathW( (DWORD) maxLength, path);
if ( (length > 0) && (length <= maxLength) && !path[maxLength-2])
{
DWORD size = ::GetLongPathNameW( path, NULL, 0);
if (size > 0)
{
UniChar *p = folderPath.GetCPointerForWrite( size-1);
if (p != NULL)
{
DWORD result = ::GetLongPathNameW( path, p, size);
if (result == 0)
winErr = GetLastError();
else
winErr = 0;
folderPath.Validate( result);
sysFolder = new VFolder( folderPath );
}
}
}
break;
}
default:
{
int type;
switch( inFolderKind)
{
case eFK_UserDocuments: type = CSIDL_PERSONAL; break;
case eFK_CommonPreferences: type = CSIDL_COMMON_APPDATA; break;
case eFK_UserPreferences: type = CSIDL_APPDATA; break;
case eFK_CommonApplicationData: type = CSIDL_COMMON_APPDATA; break;
case eFK_UserApplicationData: type = CSIDL_APPDATA; break;
case eFK_CommonCache: type = CSIDL_COMMON_APPDATA; break;
case eFK_UserCache: type = CSIDL_LOCAL_APPDATA; break;
default: xbox_assert( false); type = CSIDL_APPDATA; break;
}
HRESULT result = ::SHGetFolderPathW( NULL, type, NULL, SHGFP_TYPE_CURRENT, path);
if ( result == S_OK || result == S_FALSE ) // S_FALSE means The CSIDL is valid, but the folder does not exist.
{
folderPath.FromUniCString( path);
if (folderPath[folderPath.GetLength()-1] != FOLDER_SEPARATOR)
folderPath += FOLDER_SEPARATOR;
sysFolder = new VFolder( folderPath );
winErr = 0;
}
break;
}
}
if ( (sysFolder != NULL) && !sysFolder->Exists() )
{
if (inCreateFolder)
{
if (sysFolder->CreateRecursive() != VE_OK)
ReleaseRefCountable( &sysFolder);
}
else
{
ReleaseRefCountable( &sysFolder);
}
}
*outFolder = sysFolder;
return MAKE_NATIVE_VERROR( winErr);
}
示例4: if
VValueSingle *JS4D::ValueToVValue( ContextRef inContext, ValueRef inValue, ValueRef *outException)
{
if (inValue == NULL)
return NULL;
VValueSingle *value;
JSType type = JSValueGetType( inContext, inValue);
switch( type)
{
case kJSTypeUndefined:
case kJSTypeNull:
value = NULL; //new VEmpty;
break;
case kJSTypeBoolean:
value = new VBoolean( JSValueToBoolean( inContext, inValue));
break;
case kJSTypeNumber:
value = new VReal( JSValueToNumber( inContext, inValue, outException));
break;
case kJSTypeString:
{
JSStringRef jsString = JSValueToStringCopy( inContext, inValue, outException);
if (jsString != NULL)
{
VString *s = new VString;
size_t length = JSStringGetLength( jsString);
UniChar *p = (s != NULL) ? s->GetCPointerForWrite( length) : NULL;
if (p != NULL)
{
::memcpy( p, JSStringGetCharactersPtr( jsString), length * sizeof( UniChar));
s->Validate( length);
value = s;
}
else
{
delete s;
value = NULL;
}
JSStringRelease( jsString);
}
else
{
value = NULL;
}
break;
}
case kJSTypeObject:
{
if (ValueIsInstanceOf( inContext, inValue, CVSTR( "Date"), outException))
{
VTime *time = new VTime;
if (time != NULL)
{
JSObjectRef dateObject = JSValueToObject( inContext, inValue, outException);
DateObjectToVTime( inContext, dateObject, *time, outException);
value = time;
}
else
{
value = NULL;
}
}
else if (JSValueIsObjectOfClass( inContext, inValue, VJSFolderIterator::Class()))
{
value = NULL;
JS4DFolderIterator* container = static_cast<JS4DFolderIterator*>(JSObjectGetPrivate( JSValueToObject( inContext, inValue, outException) ));
if (testAssert( container != NULL))
{
VFolder* folder = container->GetFolder();
if (folder != NULL)
{
VString *s = new VString;
if (s != NULL)
folder->GetPath( *s, FPS_POSIX);
value = s;
}
}
}
else if (JSValueIsObjectOfClass( inContext, inValue, VJSFileIterator::Class()))
{
value = NULL;
JS4DFileIterator* container = static_cast<JS4DFileIterator*>(JSObjectGetPrivate( JSValueToObject( inContext, inValue, outException) ));
if (testAssert( container != NULL))
{
VFile* file = container->GetFile();
if (file != NULL)
{
VString *s = new VString;
if (s != NULL)
file->GetPath( *s, FPS_POSIX);
value = s;
}
}
}
else if (JSValueIsObjectOfClass( inContext, inValue, VJSBlob::Class()))
{
//.........这里部分代码省略.........