本文整理汇总了C++中WStringAutoPtr类的典型用法代码示例。如果您正苦于以下问题:C++ WStringAutoPtr类的具体用法?C++ WStringAutoPtr怎么用?C++ WStringAutoPtr使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了WStringAutoPtr类的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: UpdateProgressDialog
fmx::errcode UpdateProgressDialog ( const unsigned long value, const WStringAutoPtr description )
{
fmx::errcode error = kNoError;
BOOL user_cancelled = progress_dialog->HasUserCancelled();
if ( (user_cancelled != 0) || (value > progress_dialog_maximum) ) {
progress_dialog->StopProgressDialog();
progress_dialog->Release();
progress_dialog = NULL;
error = user_cancelled ? kUserCancelledError : error;
} else {
HRESULT result;
if ( !description->empty () ) {
result = progress_dialog->SetLine ( 2, description->c_str (), false, NULL );
}
if ( result == S_OK ) {
result = progress_dialog->SetProgress ( value, progress_dialog_maximum );
error = result == S_FALSE ? kNoError : (fmx::errcode)result;
}
}
return error;
}
开发者ID:coopc,项目名称:BaseElements-Plugin,代码行数:30,代码来源:BEWinFunctions.cpp
示例2: SetPreference
bool SetPreference ( WStringAutoPtr key, WStringAutoPtr value, WStringAutoPtr domain )
{
HKEY registry_key;
LSTATUS status;
status = RegCreateKeyEx ( HKEY_CURRENT_USER,
domain->c_str(),
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_WRITE,
NULL,
®istry_key,
NULL
);
if ( status == ERROR_SUCCESS ) {
status = RegSetValueEx ( registry_key,
key->c_str(),
0,
REG_SZ,
(PBYTE)value->c_str(),
(DWORD)(value->size() * sizeof(wchar_t)) + 1
);
RegCloseKey ( registry_key );
}
g_last_error = (fmx::errcode)status;
return ( status == ERROR_SUCCESS );
}
开发者ID:coopc,项目名称:BaseElements-Plugin,代码行数:34,代码来源:BEWinFunctions.cpp
示例3: SelectFile
WStringAutoPtr SelectFile ( WStringAutoPtr prompt, WStringAutoPtr in_folder )
{
OPENFILENAME open_file_dialog; // common dialog box structure
ZeroMemory ( &open_file_dialog, sizeof(open_file_dialog) );
open_file_dialog.lStructSize = sizeof(open_file_dialog);
open_file_dialog.hwndOwner = GetActiveWindow();
wchar_t szFile[MAX_PATH]; // buffer for file name
open_file_dialog.lpstrFile = szFile;
open_file_dialog.lpstrFilter = L"All Files (*.*)\0*.*\0";
open_file_dialog.lpstrFile[0] = '\0';
open_file_dialog.nMaxFile = sizeof(szFile);
open_file_dialog.lpstrTitle = prompt->c_str();
open_file_dialog.lpstrInitialDir = in_folder->c_str();
open_file_dialog.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
// Display the Open dialog box
wchar_t path[MAX_PATH] = L"";
if ( GetOpenFileName ( &open_file_dialog ) == TRUE ) {
wcscpy_s ( path, open_file_dialog.lpstrFile );
}
return WStringAutoPtr ( new wstring ( path ) );
} // SelectFile
开发者ID:SeAlgoAsoma,项目名称:BaseElements-Plugin,代码行数:29,代码来源:BEWinFunctions.cpp
示例4: UpdateProgressDialog
fmx::errcode UpdateProgressDialog ( const long value, const WStringAutoPtr description )
{
fmx::errcode error = kNoError;
bool user_cancelled = progress_dialog->HasUserCancelled();
if ( user_cancelled || value > progress_dialog_maximum ) {
progress_dialog->StopProgressDialog();
progress_dialog->Release();
progress_dialog = NULL;
error = user_cancelled ? kUserCancelledError : error;
} else {
if ( !description->empty () ) {
error = progress_dialog->SetLine ( 2, description->c_str (), false, NULL );
}
if ( error == S_OK ) {
error = progress_dialog->SetProgress ( value, progress_dialog_maximum );
error = error == S_FALSE ? kNoError : error;
}
}
return error;
}
开发者ID:SeAlgoAsoma,项目名称:BaseElements-Plugin,代码行数:28,代码来源:BEWinFunctions.cpp
示例5: GetPreference
WStringAutoPtr GetPreference ( WStringAutoPtr key, WStringAutoPtr domain )
{
HKEY registry_key;
DWORD buffer_size = 1024;
wchar_t * preference_data = new wchar_t[buffer_size]();
LSTATUS status;
status = RegOpenKeyEx ( HKEY_CURRENT_USER,
domain->c_str(),
NULL,
KEY_READ,
®istry_key
);
if ( status == ERROR_SUCCESS ) {
status = RegQueryValueEx ( registry_key,
key->c_str(),
NULL,
NULL,
(LPBYTE)preference_data,
&buffer_size
);
// if preference_data isn't big enough resize it and try again
if ( status == ERROR_MORE_DATA ) {
delete [] preference_data;
preference_data = new wchar_t[buffer_size + 1]();
status = RegQueryValueEx ( registry_key,
key->c_str(),
NULL,
NULL,
(LPBYTE)preference_data,
&buffer_size
);
}
RegCloseKey ( registry_key );
}
WStringAutoPtr value = WStringAutoPtr ( new wstring ( preference_data ) );
delete [] preference_data;
g_last_error = (fmx::errcode)status;
return value;
}
开发者ID:coopc,项目名称:BaseElements-Plugin,代码行数:52,代码来源:BEWinFunctions.cpp
示例6: DisplayDialog
int DisplayDialog ( WStringAutoPtr title, WStringAutoPtr message, WStringAutoPtr button1, WStringAutoPtr button2, WStringAutoPtr button3 )
{
// set the names to be used for each button
g_button1_name.swap ( *button1 );
g_button2_name.swap ( *button2 );
g_button3_name.swap ( *button3 );
// the type of dialog displayed varies depends on the nunmber of buttons required
UINT type = MB_OK;
if ( g_button2_name != L"" ) {
type = MB_OKCANCEL;
if ( g_button3_name != L"" ) {
type = MB_YESNOCANCEL;
}
}
// set the callback so that the custom button names are installed
g_window_hook = SetWindowsHookEx ( WH_CBT, &DialogCallback, 0, GetCurrentThreadId() );
/*
get the user's choice and translate that into a response that matches the equivalent
choice on OS X
*/
int button_clicked = MessageBox ( GetForegroundWindow(), message->c_str(), title->c_str(), type );
unsigned long response = 0;
switch ( button_clicked ) {
case IDOK:
case IDYES:
response = kBE_OKButton;
break;
case IDCANCEL:
response = kBE_CancelButton;
break;
case IDNO:
response = kBE_AlternateButton;
break;
}
return response;
} // DisplayDialog
开发者ID:coopc,项目名称:BaseElements-Plugin,代码行数:46,代码来源:BEWinFunctions.cpp
示例7: OpenURL
bool OpenURL ( WStringAutoPtr url )
{
HINSTANCE result = ShellExecute ( NULL, (LPCWSTR)L"open", url->c_str(), NULL, NULL, SW_SHOWNORMAL );
// see http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx
return ( result > (HINSTANCE)32 );
}
开发者ID:coopc,项目名称:BaseElements-Plugin,代码行数:9,代码来源:BEWinFunctions.cpp
示例8: ParameterAsWideString
WStringAutoPtr ParameterAsWideString ( const DataVect& parameters, FMX_UInt32 which )
{
WStringAutoPtr result ( new wstring );
try {
TextAutoPtr raw_data;
raw_data->SetText ( parameters.AtAsText(which) );
FMX_Int32 text_size = raw_data->GetSize();
FMX_UInt16 * text = new FMX_UInt16 [ text_size + 1 ];
raw_data->GetUnicode ( text, 0, text_size );
text[text_size] = 0x0000;
// wchar_t is 4 bytes on OS X and 2 on Windows
#if defined(FMX_MAC_TARGET)
wchar_t * parameter = new wchar_t [ text_size + 1 ];
for ( long i = 0 ; i <= text_size ; i++ ) {
parameter[i] = (wchar_t)text[i];
}
delete [] text;
#endif
#if defined(FMX_WIN_TARGET)
wchar_t * parameter = (wchar_t*)text;
#endif
result->append ( parameter );
delete [] parameter; // parameter == text on Windows
} catch ( exception& e ) {
; // return an empty string
}
return result;
} // ParameterAsUnicodeString
开发者ID:rickaramirez,项目名称:BaseElements-Plugin,代码行数:43,代码来源:BEPluginUtilities.cpp
示例9: DisplayProgressDialog
fmx::errcode DisplayProgressDialog ( const WStringAutoPtr title, const WStringAutoPtr description, const long maximum, const bool can_cancel )
{
HRESULT result = S_OK;
if ( progress_dialog ) {
result = kFileOrObjectIsInUse;
} else {
progress_dialog_maximum = maximum;
HWND parent_window = GetForegroundWindow();
result = CoCreateInstance ( CLSID_ProgressDialog, NULL, CLSCTX_INPROC_SERVER, IID_IProgressDialog, (void**)&progress_dialog );
if ( result == S_OK ) {
result = progress_dialog->SetTitle ( title->c_str () );
}
if ( result == S_OK ) {
result = progress_dialog->SetLine ( 2, description->c_str (), false, NULL );
}
DWORD flags = PROGDLG_NORMAL;
if ( !can_cancel ) {
flags |= PROGDLG_NOCANCEL;
}
if ( 0 == maximum ) {
flags |= PROGDLG_MARQUEEPROGRESS;
}
if ( result == S_OK ) {
result = progress_dialog->StartProgressDialog ( parent_window, NULL, flags, NULL );
}
}
return (fmx::errcode)result;
} // DisplayProgressDialog
开发者ID:alaxis,项目名称:BaseElements-Plugin,代码行数:39,代码来源:BEWinFunctions.cpp
示例10: DisplayProgressDialog
fmx::errcode DisplayProgressDialog ( const WStringAutoPtr title, const WStringAutoPtr description, const long maximum, const bool can_cancel )
{
fmx::errcode error = kNoError;
if ( progress_dialog ) {
return error;
}
progress_dialog_maximum = maximum;
HWND parent_window = GetActiveWindow ( );
error = CoCreateInstance ( CLSID_ProgressDialog, NULL, CLSCTX_INPROC_SERVER, IID_IProgressDialog, (void**)&progress_dialog );
if ( error == S_OK ) {
error = progress_dialog->SetTitle ( title->c_str () );
}
if ( error == S_OK ) {
progress_dialog->SetLine ( 2, description->c_str (), false, NULL );
}
DWORD flags = PROGDLG_NORMAL;
if ( !can_cancel ) {
flags |= PROGDLG_NOCANCEL;
}
if ( 0 == maximum ) {
flags |= PROGDLG_MARQUEEPROGRESS;
}
if ( error == S_OK ) {
error = progress_dialog->StartProgressDialog ( parent_window, NULL, flags, NULL );
}
return error;
} // DisplayProgressDialog
开发者ID:SeAlgoAsoma,项目名称:BaseElements-Plugin,代码行数:37,代码来源:BEWinFunctions.cpp
示例11: SelectFolder
WStringAutoPtr SelectFolder ( WStringAutoPtr prompt, WStringAutoPtr in_folder )
{
BROWSEINFO browse_info = { 0 };
browse_info.hwndOwner = GetActiveWindow();
browse_info.ulFlags = BIF_RETURNONLYFSDIRS | BIF_USENEWUI;
browse_info.lpszTitle = prompt->c_str();
if ( !in_folder->empty() ) {
browse_info.lpfn = SelectFolderCallback;
browse_info.lParam = (LPARAM)in_folder->c_str();
}
LPITEMIDLIST item_list = SHBrowseForFolder ( &browse_info );
// if the user hasn't cancelled the dialog get the path to the folder
wchar_t path[MAX_PATH] = L"";
if ( item_list != 0 ) {
SHGetPathFromIDList ( item_list, path );
}
return WStringAutoPtr ( new wstring ( path ) );
} // SelectFolder
开发者ID:coopc,项目名称:BaseElements-Plugin,代码行数:24,代码来源:BEWinFunctions.cpp
示例12: SelectFile
WStringAutoPtr SelectFile ( WStringAutoPtr prompt )
{
CWnd * parent_window = CWnd::FromHandle ( GetActiveWindow() );
CString filter = "All Files (*.*)|*.*||";
CFileDialog file_dialog ( TRUE, NULL, NULL, OFN_HIDEREADONLY, filter, parent_window, 0 );
file_dialog.m_ofn.lpstrTitle = prompt->c_str();
// if the user hasn't cancelled the dialog get the path to the file
wchar_t path[MAX_PATH] = L"";
if ( file_dialog.DoModal() == IDOK ) {
CString file_path = file_dialog.GetPathName();
wcscpy_s ( path, (LPCTSTR)file_path );
}
return WStringAutoPtr ( new wstring ( path ) );
} // SelectFile
开发者ID:n9yty,项目名称:BaseElements-Plugin,代码行数:19,代码来源:BEWinFunctions.cpp
示例13: SelectFolder
WStringAutoPtr SelectFolder ( WStringAutoPtr prompt )
{
BROWSEINFO browse_info = { 0 };
browse_info.hwndOwner = GetActiveWindow();
browse_info.ulFlags = BIF_RETURNONLYFSDIRS | BIF_USENEWUI | BIF_NONEWFOLDERBUTTON;
browse_info.lpszTitle = prompt->c_str();
LPITEMIDLIST item_list = SHBrowseForFolder ( &browse_info );
// if the user hasn't cancelled the dialog get the path to the folder
wchar_t path[MAX_PATH] = L"";
if ( item_list != 0 ) {
SHGetPathFromIDList ( item_list, path );
}
return WStringAutoPtr ( new wstring ( path ) );
} // SelectFolder
开发者ID:n9yty,项目名称:BaseElements-Plugin,代码行数:20,代码来源:BEWinFunctions.cpp
示例14: ClipboardData
StringAutoPtr ClipboardData ( WStringAutoPtr atype )
{
char * clipboard_data = NULL;
if ( OpenClipboard ( NULL ) ) {
UINT format_wanted = RegisterClipboardFormat ( atype->c_str() );
if ( IsClipboardFormatAvailable ( format_wanted ) ) {
HGLOBAL memory_handle = GetClipboardData ( format_wanted );
unsigned char * clipboard_contents = (unsigned char *)GlobalLock ( memory_handle );
UINT clipboard_size = GlobalSize ( memory_handle );
clipboard_data = new char [ clipboard_size + 1 ]();
memcpy ( clipboard_data, clipboard_contents, clipboard_size );
GlobalUnlock ( memory_handle );
}
CloseClipboard();
}
if ( !clipboard_data ) {
clipboard_data = new char [ 1 ]();
}
/*
prefix the data to place on the clipboard with the size of the data
*/
UINT32 offset = ClipboardOffset ( *atype );
StringAutoPtr reply ( new string ( clipboard_data + offset ) );
delete[] clipboard_data;
return reply;
} // ClipboardData
开发者ID:n9yty,项目名称:BaseElements-Plugin,代码行数:40,代码来源:BEWinFunctions.cpp
示例15: TextConstantFunction
errcode TextConstantFunction ( WStringAutoPtr text, Data& results )
{
errcode error_result = kNoError;
try {
TextAutoPtr result_text;
result_text->AssignWide ( text->c_str() );
LocaleAutoPtr default_locale;
results.SetAsText ( *result_text, *default_locale );
} catch ( bad_alloc& e ) {
error_result = kLowMemoryError;
} catch ( exception& e ) {
error_result = kErrorUnknown;
}
return error_result;
} // TextConstantFunction
开发者ID:rickaramirez,项目名称:BaseElements-Plugin,代码行数:22,代码来源:BEPluginUtilities.cpp
示例16: SetClipboardData
bool SetClipboardData ( StringAutoPtr data, WStringAutoPtr atype )
{
bool ok = FALSE;
if ( OpenClipboard ( NULL ) ) {
EmptyClipboard();
SIZE_T data_size = data->size();
/*
prefix the data to place on the clipboard with the size of the data
*/
SIZE_T offset = ClipboardOffset ( *atype );
SIZE_T clipboard_size = data_size + offset;
HGLOBAL memory_handle = GlobalAlloc ( GMEM_SHARE | GMEM_MOVEABLE, clipboard_size );
unsigned char * clipboard_contents = (unsigned char *)GlobalLock ( memory_handle );
if ( IsFileMakerClipboardType ( *atype ) == TRUE ) {
memcpy ( clipboard_contents, &data_size, offset );
}
memcpy ( clipboard_contents + offset, data->c_str(), clipboard_size );
GlobalUnlock ( memory_handle );
UINT format = RegisterClipboardFormat ( atype->c_str() );
if ( SetClipboardData ( format, clipboard_contents ) ) {
ok = TRUE;
}
CloseClipboard();
}
return ok;
} // Set_ClipboardData
开发者ID:SeAlgoAsoma,项目名称:BaseElements-Plugin,代码行数:38,代码来源:BEWinFunctions.cpp
示例17: SetResult
void SetResult ( const WStringAutoPtr text, Data& results )
{
TextAutoPtr result_text;
result_text->AssignWide ( text->c_str() );
SetResult ( *result_text, results );
}
开发者ID:rickaramirez,项目名称:BaseElements-Plugin,代码行数:6,代码来源:BEPluginUtilities.cpp
示例18: FMX_PROC
FMX_PROC(errcode) BE_ExtractScriptVariables ( short /* funcId */, const ExprEnv& /* environment */, const DataVect& data_vect, Data& results)
{
errcode error_result = kNoError;
try {
BEWStringVector variables;
WStringAutoPtr calculation = ParameterAsWideString ( data_vect, 0 );
wstring search_for = L"$/\""; // variables, comments and strings (including escaped strings)
size_t found = calculation->find_first_of ( search_for );
while ( found != wstring::npos )
{
size_t end = 0;
size_t search_from = found + 1;
switch ( calculation->at ( found ) ) {
case L'$': // variables
{
/*
find the end of the variable
+ - * / ^ & = ≠ < > ≤ ≥ ( , ; ) [ ] " :: $ }
unicode escapes are required on Windows
*/
end = calculation->find_first_of ( L" ;+-=*/&^<>\t\r[]()\u2260\u2264\u2265,", search_from );
if ( end == wstring::npos ) {
end = calculation->size();
}
// add the variable to the list
wstring wanted = calculation->substr ( found, end - found );
variables.PushBack ( wanted );
search_from = end + 1;
}
break;
case L'/': // comments
switch ( calculation->at ( search_from ) ) {
case L'/':
end = calculation->find ( L"\r", search_from );
search_from = end + 1;
break;
case L'*':
end = calculation->find ( L"*/", search_from );
search_from = end + 2;
break;
default:
break;
}
break;
case L'\"': // escaped strings
end = calculation->find ( L"\"", search_from );
while ( (end != string::npos) && (calculation->at ( end - 1 ) == L'\\') ) {
end = calculation->find ( L"\"", end + 1 );
}
search_from = end + 1;
break;
// default:
}
// this is not on an eternal quest
if ( (end != string::npos) && (search_from < calculation->size()) ) {
found = calculation->find_first_of ( search_for, search_from );
} else {
found = string::npos;
}
}
results.SetAsText( *(variables.AsValueList()), data_vect.At(0).GetLocale() );
} catch ( bad_alloc e ) {
error_result = kLowMemoryError;
} catch ( exception e ) {
error_result = kErrorUnknown;
}
return error_result;
} // BE_ExtractScriptVariables
开发者ID:perren,项目名称:BaseElements-Plugin,代码行数:85,代码来源:BEPluginFunctions.cpp
注:本文中的WStringAutoPtr类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论