int main(void) { PortAudioStream *stream1, *stream2; PaError err; paTestData DATA1, DATA2; printf("PortAudio Test: DUAL sine sweep. ask for %d buffers\n", NUM_BUFFERS ); err = Pa_Initialize(); if( err != paNoError ) goto error; err = TestStart( &stream1, DEV_ID_1, &DATA1 ); if( err != paNoError ) goto error; err = TestStart( &stream2, DEV_ID_2, &DATA2 ); if( err != paNoError ) goto error; printf("Hit ENTER\n"); getchar(); err = Pa_StopStream( stream1 ); if( err != paNoError ) goto error; err = Pa_StopStream( stream2 ); if( err != paNoError ) goto error; Pa_Terminate(); printf("Test finished.\n"); return err; error: Pa_Terminate(); fprintf( stderr, "An error occured while using the portaudio stream\n" ); fprintf( stderr, "Error number: %d\n", err ); fprintf( stderr, "Error message: %s\n", Pa_GetErrorText( err ) ); return err; }
int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow ) { if( FAILED( InitWindow( hInstance, nCmdShow ) ) ) return 0; TestStart(); // Main message loop MSG msg = {0}; while( WM_QUIT != msg.message ) { while( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); } //Do render here TestUpdate(); } TestEnd(); return ( int )msg.wParam; }
/* * WinObjExMain * * Purpose: * * Actual program entry point. * */ void WinObjExMain() { MSG msg1; WNDCLASSEX wincls; BOOL IsFullAdmin = FALSE, IsWine = FALSE, rv = TRUE, cond = FALSE; ATOM class_atom = 0; INITCOMMONCONTROLSEX icc; LVCOLUMN col; SHSTOCKICONINFO sii; HMENU hMenu; HACCEL hAccTable = 0; WCHAR szWindowTitle[100]; HANDLE hIcon; HIMAGELIST TreeViewImages; if (!WinObjInitGlobals()) return; // do not move anywhere IsFullAdmin = supUserIsFullAdmin(); // check compatibility IsWine = supIsWine(); if (IsWine != FALSE) { IsFullAdmin = FALSE; } supInit(IsFullAdmin, IsWine); // do not move anywhere // g_kdctx variable initialized BEFORE this. // if you move these lines anywhere above they will be zeroed during kdInit g_kdctx.IsWine = IsWine; g_kdctx.IsFullAdmin = IsFullAdmin; #ifdef _DEBUG TestStart(); #endif do { // // Create main window and it components. // wincls.cbSize = sizeof(WNDCLASSEX); wincls.style = 0; wincls.lpfnWndProc = &MainWindowProc; wincls.cbClsExtra = 0; wincls.cbWndExtra = 0; wincls.hInstance = g_WinObj.hInstance; wincls.hIcon = (HICON)LoadImage(g_WinObj.hInstance, MAKEINTRESOURCE(IDI_ICON_MAIN), IMAGE_ICON, 0, 0, LR_SHARED); wincls.hCursor = (HCURSOR)LoadImage(NULL, MAKEINTRESOURCE(OCR_SIZEWE), IMAGE_CURSOR, 0, 0, LR_SHARED); wincls.hbrBackground = NULL; wincls.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1); wincls.lpszClassName = MAINWINDOWCLASSNAME; wincls.hIconSm = 0; class_atom = RegisterClassEx(&wincls); if (class_atom == 0) break; RtlSecureZeroMemory(szWindowTitle, sizeof(szWindowTitle)); _strcpy(szWindowTitle, PROGRAM_NAME); if (IsFullAdmin != FALSE) { _strcat(szWindowTitle, L" (Administrator)"); } if (IsWine != FALSE) { _strcat(szWindowTitle, L" (Wine emulation)"); } MainWindow = CreateWindowEx(0, MAKEINTATOM(class_atom), szWindowTitle, WS_VISIBLE | WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, NULL, NULL, g_WinObj.hInstance, NULL); if (MainWindow == NULL) break; icc.dwSize = sizeof(icc); icc.dwICC = ICC_LISTVIEW_CLASSES | ICC_TREEVIEW_CLASSES | ICC_BAR_CLASSES | ICC_TAB_CLASSES; if (!InitCommonControlsEx(&icc)) break; hwndStatusBar = CreateWindowEx(0, STATUSCLASSNAME, NULL, WS_VISIBLE | WS_CHILD, 0, 0, 0, 0, MainWindow, NULL, g_WinObj.hInstance, NULL); g_hwndObjectTree = CreateWindowEx(WS_EX_CLIENTEDGE, WC_TREEVIEW, NULL, WS_VISIBLE | WS_CHILD | WS_TABSTOP | TVS_DISABLEDRAGDROP | TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT, 0, 0, 0, 0, MainWindow, (HMENU)1002, g_WinObj.hInstance, NULL); if (g_hwndObjectTree == NULL) break; g_hwndObjectList = CreateWindowEx(WS_EX_CLIENTEDGE, WC_LISTVIEW, NULL, WS_VISIBLE | WS_CHILD | WS_TABSTOP | LVS_AUTOARRANGE | LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL | LVS_SHAREIMAGELISTS, 0, 0, 0, 0, MainWindow, (HMENU)1003, g_WinObj.hInstance, NULL); if (g_hwndObjectList == NULL) break; hwndToolBar = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, WS_VISIBLE | WS_CHILD | CCS_TOP | TBSTYLE_FLAT | TBSTYLE_TRANSPARENT | TBSTYLE_TOOLTIPS, 0, 0, 0, 0, MainWindow, (HMENU)1004, g_WinObj.hInstance, NULL); if (hwndToolBar == NULL) break; hwndSplitter = CreateWindowEx(0, WC_STATIC, NULL, WS_VISIBLE | WS_CHILD, 0, 0, 0, 0, MainWindow, (HMENU)1005, g_WinObj.hInstance, NULL); // initialization of views SendMessage(MainWindow, WM_SIZE, 0, 0); ListView_SetExtendedListViewStyle(g_hwndObjectList, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_LABELTIP | LVS_EX_DOUBLEBUFFER); // set tree imagelist TreeViewImages = supLoadImageList(g_WinObj.hInstance, IDI_ICON_VIEW_DEFAULT, IDI_ICON_VIEW_SELECTED); if (TreeViewImages) { TreeView_SetImageList(g_hwndObjectTree, TreeViewImages, TVSIL_NORMAL); } //not enough user rights, insert run as admin menu entry and hide admin only stuff if ((IsFullAdmin == FALSE) && (g_kdctx.IsWine == FALSE)) { hMenu = GetSubMenu(GetMenu(MainWindow), 0); InsertMenu(hMenu, 0, MF_BYPOSITION, ID_FILE_RUNASADMIN, T_RUNASADMIN); InsertMenu(hMenu, 1, MF_BYPOSITION | MF_SEPARATOR, 0, NULL); //set menu shield icon RtlSecureZeroMemory(&sii, sizeof(sii)); sii.cbSize = sizeof(sii); if (SHGetStockIconInfo(SIID_SHIELD, SHGSI_ICON | SHGFI_SMALLICON, &sii) == S_OK) { supSetMenuIcon(hMenu, ID_FILE_RUNASADMIN, (ULONG_PTR)sii.hIcon); } } if (g_kdctx.hDevice == NULL) { //require driver usage, remove DeleteMenu(GetSubMenu(GetMenu(MainWindow), 4), ID_EXTRAS_SSDT, MF_BYCOMMAND); DeleteMenu(GetSubMenu(GetMenu(MainWindow), 4), ID_EXTRAS_PRIVATENAMESPACES, MF_BYCOMMAND); } //unsupported if (g_WinObj.osver.dwBuildNumber > 10240) { DeleteMenu(GetSubMenu(GetMenu(MainWindow), 4), ID_EXTRAS_PRIVATENAMESPACES, MF_BYCOMMAND); } //wine unsupported if (g_kdctx.IsWine != FALSE) { DeleteMenu(GetSubMenu(GetMenu(MainWindow), 4), ID_EXTRAS_DRIVERS, MF_BYCOMMAND); } //load listview images g_ListViewImages = supLoadImageList(g_WinObj.hInstance, IDI_ICON_DEVICE, IDI_ICON_UNKNOWN); if (g_ListViewImages) { hIcon = LoadImage(g_WinObj.hInstance, MAKEINTRESOURCE(IDI_ICON_SORTUP), IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR); if (hIcon) { ImageList_ReplaceIcon(g_ListViewImages, -1, hIcon); DestroyIcon(hIcon); } hIcon = LoadImage(g_WinObj.hInstance, MAKEINTRESOURCE(IDI_ICON_SORTDOWN), IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR); if (hIcon) { ImageList_ReplaceIcon(g_ListViewImages, -1, hIcon); DestroyIcon(hIcon); } ListView_SetImageList(g_hwndObjectList, g_ListViewImages, LVSIL_SMALL); } //load toolbar images g_ToolBarMenuImages = ImageList_LoadImage(g_WinObj.hInstance, MAKEINTRESOURCE(IDB_BITMAP1), 16, 7, CLR_DEFAULT, IMAGE_BITMAP, LR_CREATEDIBSECTION); if (g_ToolBarMenuImages) { supCreateToolbarButtons(hwndToolBar); //set menu icons hMenu = GetSubMenu(GetMenu(MainWindow), 1); if (hMenu) { supSetMenuIcon(hMenu, ID_VIEW_REFRESH, (ULONG_PTR)ImageList_ExtractIcon(g_WinObj.hInstance, g_ToolBarMenuImages, 1)); } hMenu = GetSubMenu(GetMenu(MainWindow), 2); if (hMenu && g_ListViewImages) { supSetMenuIcon(hMenu, ID_OBJECT_PROPERTIES, (ULONG_PTR)ImageList_ExtractIcon(g_WinObj.hInstance, g_ToolBarMenuImages, 0)); supSetMenuIcon(hMenu, ID_OBJECT_GOTOLINKTARGET, (ULONG_PTR)ImageList_ExtractIcon(g_WinObj.hInstance, g_ListViewImages, ID_FROM_VALUE(IDI_ICON_SYMLINK))); } //set object -> find object menu image hMenu = GetSubMenu(GetMenu(MainWindow), 3); if (hMenu) { supSetMenuIcon(hMenu, ID_FIND_FINDOBJECT, (ULONG_PTR)ImageList_ExtractIcon(g_WinObj.hInstance, g_ToolBarMenuImages, 2)); } //set extras-mailslots/pipes menu image hMenu = GetSubMenu(GetMenu(MainWindow), 4); if (hMenu) { supSetMenuIcon(hMenu, ID_EXTRAS_MAILSLOTS, (ULONG_PTR)ImageList_ExtractIcon(g_WinObj.hInstance, g_ToolBarMenuImages, 5)); supSetMenuIcon(hMenu, ID_EXTRAS_PIPES, (ULONG_PTR)ImageList_ExtractIcon(g_WinObj.hInstance, g_ToolBarMenuImages, 6)); } //set help menu image hMenu = GetSubMenu(GetMenu(MainWindow), 5); if (hMenu) { supSetMenuIcon(hMenu, ID_HELP_HELP, (ULONG_PTR)ImageList_ExtractIcon(g_WinObj.hInstance, g_ToolBarMenuImages, 3)); } } hAccTable = LoadAccelerators(g_WinObj.hInstance, MAKEINTRESOURCE(IDR_ACCELERATOR1)); //create ObjectList columns RtlSecureZeroMemory(&col, sizeof(col)); col.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_FMT | LVCF_WIDTH | LVCF_ORDER | LVCF_IMAGE; col.iSubItem = 1; col.pszText = TEXT("Name"); col.fmt = LVCFMT_LEFT | LVCFMT_BITMAP_ON_RIGHT; col.iOrder = 0; col.iImage = -1; if (g_ListViewImages) { col.iImage = ImageList_GetImageCount(g_ListViewImages) - 1; } col.cx = 300; ListView_InsertColumn(g_hwndObjectList, 1, &col); col.iSubItem = 2; col.pszText = TEXT("Type"); col.iOrder = 1; col.iImage = -1; col.cx = 100; ListView_InsertColumn(g_hwndObjectList, 2, &col); col.iSubItem = 3; col.pszText = TEXT("Additional Information"); col.iOrder = 2; col.iImage = -1; col.cx = 170; ListView_InsertColumn(g_hwndObjectList, 3, &col); ListObjectDirectoryTree(L"\\", NULL, NULL); TreeView_SelectItem(g_hwndObjectTree, TreeView_GetRoot(g_hwndObjectTree)); SetFocus(g_hwndObjectTree); do { rv = GetMessage(&msg1, NULL, 0, 0); if (rv == -1) break; if (MainDlgMsgHandler(msg1)) continue; if (IsDialogMessage(MainWindow, &msg1)) { TranslateAccelerator(MainWindow, hAccTable, &msg1); continue; } TranslateMessage(&msg1); DispatchMessage(&msg1); } while (rv != 0); } while (cond); if (class_atom != 0) UnregisterClass(MAKEINTATOM(class_atom), g_WinObj.hInstance); //do not move anywhere supShutdown(); #ifdef _DEBUG TestStop(); #endif }
/** @SYMTestCaseID SYSLIB-SQLITE3-UT-4004 @SYMTestCaseDesc Database handle SQLITE3 tests. List of called SQLITE3 functions: - sqlite3_config; - sqlite3_initialize; - sqlite3_threadsafe; - sqlite3_vfs_find; - sqlite3_open; - sqlite3_db_config; - sqlite3_libversion; - sqlite3_libversion_number; - sqlite3_set_authorizer; - sqlite3_commit_hook; - sqlite3_rollback_hook; - sqlite3_update_hook; - sqlite3_close; - sqlite3_shutdown; @SYMTestPriority High @SYMTestActions Database handle SQLITE3 tests. @SYMTestExpectedResults Test must not fail @SYMREQ REQ8782 */ static void TestSqliteApi() { void* prev = 0; const char* libverstr = 0; int libvernum = 0; int err; int threadSafe = -1; sqlite3_vfs* vfs = 0; TEST(!TheDb); TestStart("@SYMTestCaseID:SYSLIB-SQLITE3-UT-4004: Test \"sqlite3_config()\""); err = sqlite3_config(SQLITE_CONFIG_MEMSTATUS, 0); TEST2(err, SQLITE_OK); TestNext("Test \"sqlite3_initialize()\""); err = sqlite3_initialize(); TEST2(err, SQLITE_OK); TestNext("Test \"sqlite3_threadsafe()\""); threadSafe = sqlite3_threadsafe(); PrintI("SQLITE_THREADSAFE=%d\r\n", threadSafe); vfs = sqlite3_vfs_find(0); TEST(vfs != NULL); PrintS("Vfs name=\"%s\"\r\n", vfs->zName); err = sqlite3_open(TheTestDbName, &TheDb); TEST2(err, SQLITE_OK); TEST(TheDb != 0); err = sqlite3_db_config(TheDb, SQLITE_DBCONFIG_LOOKASIDE, 0, 128, 100); TEST2(err, SQLITE_OK); libverstr = sqlite3_libversion(); libvernum = sqlite3_libversion_number(); PrintSI("SQLITE version: \"%s\", Number: %d\r\n", libverstr, libvernum); err = sqlite3_set_authorizer(TheDb, &authorizer_callback, 0); TEST2(err, SQLITE_OK); prev = sqlite3_commit_hook(TheDb, &commit_hook, 0); TEST(!prev); prev = sqlite3_rollback_hook(TheDb, &rollback_hook, 0); TEST(!prev); prev = sqlite3_update_hook(TheDb, &update_hook, 0); TEST(!prev); TestNext("@SYMTestCaseID:SYSLIB-SQLITE3-UT-4001: Test \"sqlite3\" handle API"); TestExec(); TestNext("@SYMTestCaseID:SYSLIB-SQLITE3-UT-4002: Test \"sqlite3_stmt\" handle API-1"); TestStatement1(); TestNext("@SYMTestCaseID:SYSLIB-SQLITE3-UT-4003: Test \"sqlite3_stmt\" handle API-2"); TestStatement2(); TestNext("@SYMTestCaseID:PDS-SQLITE3-UT-4038: Test more sqlite3 API"); TestSqliteApi2(); TestNext("@SYMTestCaseID:PDS-SQLITE3-UT-4039: Test blob API"); TestSqliteBlobApi(); TestNext("@SYMTestCaseID:PDS-SQLITE3-UT-4040: Test mutex API"); TestSqliteMutexApi(); err = sqlite3_close(TheDb); TEST2(err, SQLITE_OK); TheDb = 0; TestNext("Test \"sqlite3_shutdown()\""); err = sqlite3_shutdown(); TEST2(err, SQLITE_OK); err = remove(TheTestDbName); TEST2(err, 0); }