ReactOS  0.4.15-dev-2355-gaf9df93
appview.cpp
Go to the documentation of this file.
1 /*
2  * PROJECT: ReactOS Applications Manager
3  * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4  * PURPOSE: Application view class and other classes used by it
5  * COPYRIGHT: Copyright 2020 He Yang (1160386205@qq.com)
6  */
7 
8 #include "rapps.h"
9 #include "appview.h"
10 #include "gui.h"
11 #include <windowsx.h>
12 
13 
14  // **** CMainToolbar ****
15 
17 {
18  HICON hImage;
19 
20  if (!(hImage = (HICON)LoadImageW(hInst,
21  MAKEINTRESOURCE(ImageIndex),
22  IMAGE_ICON,
25  0)))
26  {
27  /* TODO: Error message */
28  }
29 
30  ImageList_AddIcon(hImageList, hImage);
31  DeleteObject(hImage);
32 }
33 
35 {
36  HIMAGELIST hImageList;
37 
38  /* Create the toolbar icon image list */
39  hImageList = ImageList_Create(m_iToolbarHeight,//GetSystemMetrics(SM_CXSMICON),
40  m_iToolbarHeight,//GetSystemMetrics(SM_CYSMICON),
42  1, 1);
43  if (!hImageList)
44  {
45  /* TODO: Error message */
46  return NULL;
47  }
48 
49  AddImageToImageList(hImageList, IDI_INSTALL);
51  AddImageToImageList(hImageList, IDI_MODIFY);
53  AddImageToImageList(hImageList, IDI_REFRESH);
55  AddImageToImageList(hImageList, IDI_SETTINGS);
56  AddImageToImageList(hImageList, IDI_EXIT);
57 
58  return hImageList;
59 }
60 
62  : m_iToolbarHeight(24)
63  , m_dButtonsWidthMax(0)
64 {
65  memset(szInstallBtn, 0, sizeof(szInstallBtn));
67  memset(szModifyBtn, 0, sizeof(szModifyBtn));
68  memset(szSelectAll, 0, sizeof(szSelectAll));
69 }
70 
72 {
73  UINT idButton = (UINT)lpttt->hdr.idFrom;
74 
75  switch (idButton)
76  {
77  case ID_EXIT:
78  lpttt->lpszText = MAKEINTRESOURCEW(IDS_TOOLTIP_EXIT);
79  break;
80 
81  case ID_INSTALL:
82  lpttt->lpszText = MAKEINTRESOURCEW(IDS_TOOLTIP_INSTALL);
83  break;
84 
85  case ID_UNINSTALL:
86  lpttt->lpszText = MAKEINTRESOURCEW(IDS_TOOLTIP_UNINSTALL);
87  break;
88 
89  case ID_MODIFY:
90  lpttt->lpszText = MAKEINTRESOURCEW(IDS_TOOLTIP_MODIFY);
91  break;
92 
93  case ID_SETTINGS:
94  lpttt->lpszText = MAKEINTRESOURCEW(IDS_TOOLTIP_SETTINGS);
95  break;
96 
97  case ID_REFRESH:
98  lpttt->lpszText = MAKEINTRESOURCEW(IDS_TOOLTIP_REFRESH);
99  break;
100 
101  case ID_RESETDB:
102  lpttt->lpszText = MAKEINTRESOURCEW(IDS_TOOLTIP_UPDATE_DB);
103  break;
104  }
105 }
106 
108 {
109  /* Create buttons */
110  TBBUTTON Buttons[] =
111  { /* iBitmap, idCommand, fsState, fsStyle, bReserved[2], dwData, iString */
116  { -1, 0, TBSTATE_ENABLED, BTNS_SEP, { 0 }, 0, 0 },
117  { 4, ID_REFRESH, TBSTATE_ENABLED, BTNS_BUTTON | BTNS_AUTOSIZE, { 0 }, 0, 0 },
118  { 5, ID_RESETDB, TBSTATE_ENABLED, BTNS_BUTTON | BTNS_AUTOSIZE, { 0 }, 0, 0 }
119  };
120 
125 
128  0, 0, 0, 0,
129  hwndParent,
130  0, hInst, NULL);
131 
132  if (!m_hWnd)
133  {
134  /* TODO: Show error message */
135  return FALSE;
136  }
137 
140 
141  /* Set image list */
142  HIMAGELIST hImageList = InitImageList();
143 
144  if (!hImageList)
145  {
146  /* TODO: Show error message */
147  return FALSE;
148  }
149 
150  ImageList_Destroy(SetImageList(hImageList));
151 
153 
154  /* Remember ideal width to use as a max width of buttons */
155  SIZE size;
158 
159  return m_hWnd;
160 }
161 
163 {
164  DWORD dCurrentExStyle = (DWORD)SendMessageW(TB_GETEXTENDEDSTYLE, 0, 0);
166 }
167 
169 {
170  DWORD dCurrentExStyle = (DWORD)SendMessageW(TB_GETEXTENDEDSTYLE, 0, 0);
172 }
173 
175 {
176  return m_dButtonsWidthMax;
177 }
178 // **** CMainToolbar ****
179 
180 
181 // **** CSearchBar ****
182 
183 CSearchBar::CSearchBar() : m_Width(180), m_Height(22)
184 {
185 }
186 
188 {
190 }
191 
193 {
194  ATL::CStringW szBuf;
197  0, 0, m_Width, m_Height,
199  hInst, 0);
200 
202  szBuf.LoadStringW(IDS_SEARCH_TEXT);
203  SetWindowTextW(szBuf);
204  return m_hWnd;
205 }
206 // **** CSearchBar ****
207 
208 
209 // **** CComboBox ****
210 
211 CComboBox::CComboBox() : m_Width(80), m_Height(22)
212 {
213 }
214 
216 {
219  0, 0, m_Width, m_Height, hwndParent, NULL, 0,
220  NULL);
221 
223 
224  for (int i = 0; i < (int)_countof(m_TypeStringID); i++)
225  {
226  ATL::CStringW szBuf;
227  szBuf.LoadStringW(m_TypeStringID[i]);
229  }
230 
231  SendMessageW(CB_SETCURSEL, m_DefaultSelectType, 0); // select the first item
232 
233  return m_hWnd;
234 }
235 // **** CComboBox ****
236 
237 
238 // **** CAppRichEdit ****
239 
241  const ATL::CStringW &szText,
242  DWORD StringFlags,
243  DWORD TextFlags)
244 {
245  ATL::CStringW szLoadedText;
246  if (!szText.IsEmpty() && szLoadedText.LoadStringW(uStringID))
247  {
248  InsertText(szLoadedText, StringFlags);
249  InsertText(szText, TextFlags);
250  }
251 }
252 
254  DWORD StringFlags)
255 {
256  ATL::CStringW szLoadedText;
257  if (szLoadedText.LoadStringW(uStringID))
258  {
259  InsertText(L"\n", 0);
260  InsertText(szLoadedText, StringFlags);
261  InsertText(L"\n", 0);
262  }
263 }
264 
266 {
267  if (Info->IsInstalled())
268  {
269  if (Info->HasInstalledVersion())
270  {
271  if (Info->HasUpdate())
273  else
275 
276  LoadAndInsertText(IDS_AINFO_VERSION, Info->m_szInstalledVersion, CFE_BOLD, 0);
277  }
278  else
279  {
281  }
282  }
283  else
284  {
286  }
287 
289 }
290 
292 {
293  ATL::CStringW szLicense;
294  switch (Info->m_LicenseType)
295  {
296  case LICENSE_OPENSOURCE:
297  szLicense.LoadStringW(IDS_LICENSE_OPENSOURCE);
298  break;
299  case LICENSE_FREEWARE:
300  szLicense.LoadStringW(IDS_LICENSE_FREEWARE);
301  break;
302  case LICENSE_TRIAL:
303  szLicense.LoadStringW(IDS_LICENSE_TRIAL);
304  break;
305  default:
307  return;
308  }
309 
310  szLicense += L" (" + Info->m_szLicense + L")";
312 }
313 
315 {
316  if (!Info->HasLanguageInfo())
317  {
318  return;
319  }
320 
321  const INT nTranslations = Info->m_LanguageLCIDs.GetSize();
322  ATL::CStringW szLangInfo;
323  ATL::CStringW szLoadedTextAvailability;
324  ATL::CStringW szLoadedAInfoText;
325 
326  szLoadedAInfoText.LoadStringW(IDS_AINFO_LANGUAGES);
327 
328  if (Info->HasNativeLanguage())
329  {
330  szLoadedTextAvailability.LoadStringW(IDS_LANGUAGE_AVAILABLE_TRANSLATION);
331  if (nTranslations > 1)
332  {
334  buf.LoadStringW(IDS_LANGUAGE_MORE_PLACEHOLDER);
335  szLangInfo.Format(buf, nTranslations - 1);
336  }
337  else
338  {
339  szLangInfo.LoadStringW(IDS_LANGUAGE_SINGLE);
340  szLangInfo = L" (" + szLangInfo + L")";
341  }
342  }
343  else if (Info->HasEnglishLanguage())
344  {
345  szLoadedTextAvailability.LoadStringW(IDS_LANGUAGE_ENGLISH_TRANSLATION);
346  if (nTranslations > 1)
347  {
350  szLangInfo.Format(buf, nTranslations - 1);
351  }
352  else
353  {
354  szLangInfo.LoadStringW(IDS_LANGUAGE_SINGLE);
355  szLangInfo = L" (" + szLangInfo + L")";
356  }
357  }
358  else
359  {
360  szLoadedTextAvailability.LoadStringW(IDS_LANGUAGE_NO_TRANSLATION);
361  }
362 
363  InsertText(szLoadedAInfoText, CFE_BOLD);
364  InsertText(szLoadedTextAvailability, NULL);
365  InsertText(szLangInfo, CFE_ITALIC);
366 }
367 
369 {
370  if (!Info) return FALSE;
371 
372  SetText(Info->m_szName, CFE_BOLD);
376 
382 
383  return TRUE;
384 }
385 
386 inline VOID CAppRichEdit::InsertTextWithString(UINT StringID, DWORD StringFlags, const ATL::CStringW &Text, DWORD TextFlags)
387 {
388  if (!Text.IsEmpty())
389  {
390  LoadAndInsertText(StringID, Text, StringFlags, TextFlags);
391  }
392 }
393 
395 {
396  if (!Info) return FALSE;
397 
398  SetText(Info->szDisplayName, CFE_BOLD);
399  InsertText(L"\n", 0);
400 
401  InsertTextWithString(IDS_INFO_VERSION, CFE_BOLD, Info->szDisplayVersion, 0);
406  InsertTextWithString(IDS_INFO_HELPPHONE, CFE_BOLD, Info->szHelpTelephone, 0);
413  InsertTextWithString(IDS_INFO_INSTLOCATION, CFE_BOLD, Info->szInstallLocation, 0);
414  InsertTextWithString(IDS_INFO_INSTALLSRC, CFE_BOLD, Info->szInstallSource, 0);
415  InsertTextWithString(IDS_INFO_UNINSTALLSTR, CFE_BOLD, Info->szUninstallString, 0);
417 
418  return TRUE;
419 }
420 
422 {
424 
425  szText.LoadStringW(IDS_WELCOME_TITLE);
427 
428  szText.LoadStringW(IDS_WELCOME_TEXT);
429  InsertText(szText, 0);
430 
431  szText.LoadStringW(IDS_WELCOME_URL);
433 }
434 // **** CAppRichEdit ****
435 
436 
438  pASYNCINET AsyncInet,
440  WPARAM wParam,
441  LPARAM lParam,
442  VOID *Extension
443 )
444 {
446  switch (Event)
447  {
448  case ASYNCINET_DATA:
451  break;
452  case ASYNCINET_COMPLETE:
453  CloseHandle(DownloadParam->hFile);
455  break;
456  case ASYNCINET_CANCELLED:
457  CloseHandle(DownloadParam->hFile);
459  break;
460  case ASYNCINET_ERROR:
461  CloseHandle(DownloadParam->hFile);
463  break;
464  default:
465  ATLASSERT(FALSE);
466  break;
467  }
468  return 0;
469 }
470 
471 
472 // **** CAppScrnshotPreview ****
473 
475 {
476  theResult = 0;
477  switch (Msg)
478  {
479  case WM_CREATE:
481  break;
482  case WM_SIZE:
483  {
485  {
487 
488  if (hBrokenImgIcon)
489  {
492  }
493  }
494  break;
495  }
497  {
500  AsyncInet = NULL;
501  switch (wParam)
502  {
503  case ERROR_SUCCESS:
504  if (ContentID == DownloadParam->ID)
505  {
506  DisplayFile(DownloadParam->DownloadFileName);
507  // send a message to trigger resizing
509  InvalidateRect(0, 0);
510  TempImagePath = DownloadParam->DownloadFileName; // record tmp file path in order to delete it when cleanup
511  }
512  else
513  {
514  // the picture downloaded is already outdated. delete it.
515  DeleteFileW(DownloadParam->DownloadFileName);
516  }
517  break;
518  case ERROR_CANCELLED:
519  DeleteFileW(DownloadParam->DownloadFileName);
520  break;
521  default:
522  DisplayFailed();
523  // send a message to trigger resizing
525  InvalidateRect(0, 0);
526  DeleteFileW(DownloadParam->DownloadFileName);
527  break;
528  }
529  delete DownloadParam;
530  break;
531  }
532  case WM_PAINT:
533  {
534  PAINTSTRUCT ps;
535  HDC hdc = BeginPaint(&ps);
536  CRect rect;
538 
539  PaintOnDC(hdc,
540  rect.Width(),
541  rect.Height(),
542  ps.fErase);
543 
544  EndPaint(&ps);
545  break;
546  }
547  case WM_PRINTCLIENT:
548  {
549  if (lParam & PRF_CHECKVISIBLE)
550  {
551  if (!IsWindowVisible()) break;
552  }
553  CRect rect;
555 
557  rect.Width(),
558  rect.Height(),
560  break;
561  }
562  case WM_ERASEBKGND:
563  {
564  return TRUE; // do not erase to avoid blinking
565  }
566  case WM_TIMER:
567  {
568  switch (wParam)
569  {
573  HDC hdc = GetDC();
574  CRect rect;
576 
577  PaintOnDC(hdc,
578  rect.Width(),
579  rect.Height(),
580  TRUE);
581  ReleaseDC(hdc);
582  }
583  break;
584  }
585  case WM_DESTROY:
586  {
590  break;
591  }
592  }
593  return FALSE;
594 }
595 
597 {
599  if (bLoadingTimerOn)
600  {
602  }
606 }
607 
609 {
613 }
614 
616 {
619  pImage = Bitmap::FromFile(lpszFileName, 0);
620  if (pImage->GetLastStatus() != Ok)
621  {
622  DisplayFailed();
623  return FALSE;
624  }
625  return TRUE;
626 }
627 
629 {
631 }
632 
634 {
635  // use an off screen dc to avoid blinking
639 
640  if (bDrawBkgnd)
641  {
642  HBRUSH hOldBrush = (HBRUSH)SelectObject(hdcMem, (HGDIOBJ)GetSysColorBrush(COLOR_BTNFACE));
643  PatBlt(hdcMem, 0, 0, width, height, PATCOPY);
644  SelectObject(hdcMem, hOldBrush);
645  }
646 
647  switch (ScrnshotPrevStauts)
648  {
649  case SCRNSHOT_PREV_EMPTY:
650  {
651 
652  }
653  break;
654 
656  {
657  Graphics graphics(hdcMem);
658  Color color(255, 0, 0);
659  SolidBrush dotBrush(Color(255, 100, 100, 100));
660 
662 
663  // Paint three dot
664  float DotWidth = GetLoadingDotWidth(width, height);
665  graphics.FillEllipse((Brush *)(&dotBrush),
666  (REAL)width / 2.0 - min(width, height) * 2.0 / 16.0 - DotWidth / 2.0,
668  DotWidth,
669  DotWidth);
670 
671  graphics.FillEllipse((Brush *)(&dotBrush),
672  (REAL)width / 2.0 - DotWidth / 2.0,
673  (REAL)height / 2.0 - GetFrameDotShift(LoadingAnimationFrame, width, height) - DotWidth / 2.0,
674  DotWidth,
675  DotWidth);
676 
677  graphics.FillEllipse((Brush *)(&dotBrush),
678  (REAL)width / 2.0 + min(width, height) * 2.0 / 16.0 - DotWidth / 2.0,
680  DotWidth,
681  DotWidth);
682  }
683  break;
684 
685  case SCRNSHOT_PREV_IMAGE:
686  {
687  if (pImage)
688  {
689  // always draw entire image inside the window.
690  Graphics graphics(hdcMem);
691  float ZoomRatio = min(((float)width / (float)pImage->GetWidth()), ((float)height / (float)pImage->GetHeight()));
692  float ZoomedImgWidth = ZoomRatio * (float)pImage->GetWidth();
693  float ZoomedImgHeight = ZoomRatio * (float)pImage->GetHeight();
694 
695  graphics.DrawImage(pImage,
696  ((float)width - ZoomedImgWidth) / 2.0, ((float)height - ZoomedImgHeight) / 2.0,
697  ZoomedImgWidth, ZoomedImgHeight);
698  }
699  }
700  break;
701 
703  {
705  (width - BrokenImgSize) / 2,
706  (height - BrokenImgSize) / 2,
710  NULL,
711  NULL,
712  DI_NORMAL | DI_COMPAT);
713  }
714  break;
715  }
716 
717  // copy the content form off-screen dc to hdc
718  BitBlt(hdc, 0, 0, width, height, hdcMem, 0, 0, SRCCOPY);
719  DeleteDC(hdcMem);
721 }
722 
724 {
725  return min(width, height) / 20.0;
726 }
727 
729 {
730  return min(width, height) *
731  (1.0 / 16.0) *
732  (2.0 / (2.0 - sqrt(3.0))) *
733  (max(sin((float)Frame * 2 * PI / (LOADING_ANIMATION_PERIOD * LOADING_ANIMATION_FPS)), sqrt(3.0) / 2.0) - sqrt(3.0) / 2.0);
734 }
735 
737 {
738  DWORD csStyle = CS_VREDRAW | CS_HREDRAW;
739  static ATL::CWndClassInfo wc =
740  {
741  {
742  sizeof(WNDCLASSEX),
743  csStyle,
745  0,
746  0,
747  NULL,
748  0,
750  (HBRUSH)(COLOR_BTNFACE + 1),
751  0,
752  L"RAppsScrnshotPreview",
753  NULL
754  },
755  NULL, NULL, IDC_ARROW, TRUE, 0, _T("")
756  };
757  return wc;
758 }
759 
761 {
762  RECT r = { 0,0,0,0 };
763 
765 }
766 
768 {
769  if (bLoadingTimerOn)
770  {
773  }
775  if (pImage)
776  {
777  delete pImage;
778  pImage = NULL;
779  }
780  if (AsyncInet)
781  {
783  }
784  if (!TempImagePath.IsEmpty())
785  {
788  }
789 }
790 
792 {
796 }
797 
799 {
802 
803  if (PathIsURLW(lpszLocation))
804  {
805  DisplayLoading();
806 
808  if (!DownloadParam) return FALSE;
809 
810  DownloadParam->hwndNotify = m_hWnd;
811  DownloadParam->ID = ID;
812  // generate a filename
814  PathAppendW(ScrnshotFolder.GetBuffer(MAX_PATH), L"screenshots");
815  ScrnshotFolder.ReleaseBuffer();
816 
817  if (!PathIsDirectoryW(ScrnshotFolder.GetString()))
818  {
819  CreateDirectoryW(ScrnshotFolder.GetString(), NULL);
820  }
821 
822  if (!GetTempFileNameW(ScrnshotFolder.GetString(), L"img",
823  0, DownloadParam->DownloadFileName.GetBuffer(MAX_PATH)))
824  {
825  DownloadParam->DownloadFileName.ReleaseBuffer();
826  delete DownloadParam;
827  DisplayFailed();
828  return FALSE;
829  }
830  DownloadParam->DownloadFileName.ReleaseBuffer();
831 
832  DownloadParam->hFile = CreateFileW(DownloadParam->DownloadFileName.GetString(),
834  if (DownloadParam->hFile == INVALID_HANDLE_VALUE)
835  {
836  delete DownloadParam;
837  DisplayFailed();
838  return FALSE;
839  }
840 
842  if (!AsyncInet)
843  {
844  CloseHandle(DownloadParam->hFile);
845  DeleteFileW(DownloadParam->DownloadFileName.GetBuffer());
846  delete DownloadParam;
847  DisplayFailed();
848  return FALSE;
849  }
850  return TRUE;
851  }
852  else
853  {
854  return DisplayFile(lpszLocation);
855  }
856 }
857 
858 int CAppScrnshotPreview::GetRequestedWidth(int Height) // calculate requested window width by given height
859 {
860  switch (ScrnshotPrevStauts)
861  {
862  case SCRNSHOT_PREV_EMPTY:
863  return 0;
865  return 200;
866  case SCRNSHOT_PREV_IMAGE:
867  if (pImage)
868  {
869  // return the width needed to display image inside the window.
870  // and always keep window w/h ratio inside [ 1/SCRNSHOT_MAX_ASPECT_RAT, SCRNSHOT_MAX_ASPECT_RAT ]
871  return (int)floor((float)Height *
873  }
874  return 0;
876  return 200;
877  default:
878  return 0;
879  }
880 }
881 
883 {
885 }
886 // **** CAppScrnshotPreview ****
887 
888 
889 // **** CAppInfoDisplay ****
890 
892 {
893  theResult = 0;
894  switch (message)
895  {
896  case WM_CREATE:
897  {
898  RichEdit = new CAppRichEdit();
899  RichEdit->Create(hwnd);
900 
903  break;
904  }
905  case WM_SIZE:
906  {
908  break;
909  }
911  {
912  ResizeChildren();
913  break;
914  }
915  case WM_COMMAND:
916  {
918  break;
919  }
920  case WM_NOTIFY:
921  {
922  NMHDR *NotifyHeader = (NMHDR *)lParam;
923  if (NotifyHeader->hwndFrom == RichEdit->m_hWnd)
924  {
925  switch (NotifyHeader->code)
926  {
927  case EN_LINK:
928  OnLink((ENLINK *)lParam);
929  break;
930  }
931  }
932  break;
933  }
934  }
935 
936  return FALSE;
937 }
938 
940 {
941  CRect rect;
943  ResizeChildren(rect.Width(), rect.Height());
944 }
945 
946 VOID CAppInfoDisplay::ResizeChildren(int Width, int Height)
947 {
948  int ScrnshotWidth = ScrnshotPrev->GetRequestedWidth(Height);
949 
950  // make sure richedit always have room to display
951  ScrnshotWidth = min(ScrnshotWidth, Width - INFO_DISPLAY_PADDING - RICHEDIT_MIN_WIDTH);
952 
953  DWORD dwError = ERROR_SUCCESS;
954  HDWP hDwp = BeginDeferWindowPos(2);
955 
956  if (hDwp)
957  {
958  hDwp = ::DeferWindowPos(hDwp, ScrnshotPrev->m_hWnd, NULL,
959  0, 0, ScrnshotWidth, Height, 0);
960 
961  if (hDwp)
962  {
963  // hide the padding if scrnshot window width == 0
964  int RicheditPosX = ScrnshotWidth ? (ScrnshotWidth + INFO_DISPLAY_PADDING) : 0;
965 
966  hDwp = ::DeferWindowPos(hDwp, RichEdit->m_hWnd, NULL,
967  RicheditPosX, 0, Width - RicheditPosX, Height, 0);
968 
969  if (hDwp)
970  {
971  EndDeferWindowPos(hDwp);
972  }
973  else
974  {
975  dwError = GetLastError();
976  }
977  }
978  else
979  {
980  dwError = GetLastError();
981  }
982  }
983  else
984  {
985  dwError = GetLastError();
986  }
987 
988 
989 #if DBG
990  ATLASSERT(dwError == ERROR_SUCCESS);
991 #endif
992  UNREFERENCED_PARAMETER(dwError);
993 
994  UpdateWindow();
995 }
996 
998 {
999  switch (Link->msg)
1000  {
1001  case WM_LBUTTONUP:
1002  case WM_RBUTTONUP:
1003  {
1004  if (pLink) HeapFree(GetProcessHeap(), 0, pLink);
1005 
1007  (max(Link->chrg.cpMin, Link->chrg.cpMax) -
1008  min(Link->chrg.cpMin, Link->chrg.cpMax) + 1) * sizeof(WCHAR));
1009  if (!pLink)
1010  {
1011  /* TODO: Error message */
1012  return;
1013  }
1014 
1015  RichEdit->SendMessageW(EM_SETSEL, Link->chrg.cpMin, Link->chrg.cpMax);
1016  RichEdit->SendMessageW(EM_GETSELTEXT, 0, (LPARAM)pLink);
1017 
1018  ShowPopupMenuEx(m_hWnd, m_hWnd, IDR_LINKMENU, -1);
1019  }
1020  break;
1021  }
1022 }
1023 
1025 {
1026  DWORD csStyle = CS_VREDRAW | CS_HREDRAW;
1027  static ATL::CWndClassInfo wc =
1028  {
1029  {
1030  sizeof(WNDCLASSEX),
1031  csStyle,
1032  StartWindowProc,
1033  0,
1034  0,
1035  NULL,
1036  NULL,
1037  NULL,
1038  (HBRUSH)(COLOR_BTNFACE + 1),
1039  NULL,
1040  L"RAppsAppInfo",
1041  NULL
1042  },
1043  NULL, NULL, IDC_ARROW, TRUE, 0, _T("")
1044  };
1045  return wc;
1046 }
1047 
1049 {
1050  RECT r = { 0,0,0,0 };
1051 
1053 }
1054 
1056 {
1057  ATL::CStringW ScrnshotLocation;
1058  if (Info->RetrieveScrnshot(0, ScrnshotLocation))
1059  {
1060  ScrnshotPrev->DisplayImage(ScrnshotLocation);
1061  }
1062  else
1063  {
1065  }
1066  ResizeChildren();
1068 }
1069 
1071 {
1073  ResizeChildren();
1075 }
1076 
1078 {
1080  ResizeChildren();
1082 }
1083 
1085 {
1086  WORD wCommand = LOWORD(wParam);
1087 
1088  switch (wCommand)
1089  {
1090  case ID_OPEN_LINK:
1091 
1092  ShellExecuteW(m_hWnd, L"open", pLink, NULL, NULL, SW_SHOWNOACTIVATE);
1093  HeapFree(GetProcessHeap(), 0, pLink);
1094  pLink = NULL;
1095  break;
1096 
1097  case ID_COPY_LINK:
1099  HeapFree(GetProcessHeap(), 0, pLink);
1100  pLink = NULL;
1101  break;
1102 
1103  }
1104 }
1105 
1107 {
1108  delete RichEdit;
1109  delete ScrnshotPrev;
1110 }
1111 // **** CAppInfoDisplay ****
1112 
1113 
1114 // **** CAppsListView ****
1115 
1117  bHasCheckboxes(FALSE),
1118  nLastHeaderID(-1)
1119 {
1120 }
1121 
1123 {
1124  if (bIsVisible)
1125  {
1127  }
1128  else
1129  {
1131  }
1132 
1133  bHasCheckboxes = bIsVisible;
1134 }
1135 
1137 {
1138  HWND hHeader;
1139  HDITEMW hColumn;
1140  INT nHeaderID = pnmv->iSubItem;
1141 
1143  return;
1144 
1145  hHeader = (HWND)SendMessage(LVM_GETHEADER, 0, 0);
1146  ZeroMemory(&hColumn, sizeof(hColumn));
1147 
1148  /* If the sorting column changed, remove the sorting style from the old column */
1149  if ((nLastHeaderID != -1) && (nLastHeaderID != nHeaderID))
1150  {
1151  bIsAscending = TRUE; // also reset sorting method to ascending
1152  hColumn.mask = HDI_FORMAT;
1153  Header_GetItem(hHeader, nLastHeaderID, &hColumn);
1154  hColumn.fmt &= ~(HDF_SORTUP | HDF_SORTDOWN);
1155  Header_SetItem(hHeader, nLastHeaderID, &hColumn);
1156  }
1157 
1158  /* Set the sorting style to the new column */
1159  hColumn.mask = HDI_FORMAT;
1160  Header_GetItem(hHeader, nHeaderID, &hColumn);
1161 
1162  hColumn.fmt &= ~(HDF_SORTDOWN | HDF_SORTUP);
1163  hColumn.fmt |= (bIsAscending ? HDF_SORTUP : HDF_SORTDOWN);
1164  Header_SetItem(hHeader, nHeaderID, &hColumn);
1165 
1166  /* Sort the list, using the current values of nHeaderID and bIsAscending */
1167  SortContext ctx = { this, nHeaderID };
1169 
1170  /* Save new values */
1171  nLastHeaderID = nHeaderID;
1173 }
1174 
1176 {
1177  return AddColumn(Index, const_cast<LPWSTR>(Text.GetString()), Width, Format);
1178 }
1179 
1181 {
1182  LVCOLUMNW Column;
1183 
1184  ZeroMemory(&Column, sizeof(Column));
1185 
1187  Column.iSubItem = Index;
1188  Column.pszText = lpText;
1189  Column.cx = Width;
1190  Column.fmt = Format;
1191 
1192  return SendMessage(LVM_INSERTCOLUMN, Index, (LPARAM)(&Column));
1193 }
1194 
1196 {
1198  return;
1199 }
1200 
1202 {
1203  LVITEMW Item;
1204 
1205  ZeroMemory(&Item, sizeof(Item));
1206 
1207  Item.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE;
1208  Item.pszText = const_cast<LPWSTR>(lpText);
1209  Item.lParam = lParam;
1210  Item.iItem = ItemIndex;
1211  Item.iImage = IconIndex;
1212 
1213  if (IconIndex >= 0)
1214  {
1215  Item.iImage = IconIndex;
1216  Item.mask |= LVIF_IMAGE;
1217  }
1218  return InsertItem(&Item);
1219 }
1220 
1222 {
1223  return (HIMAGELIST)SendMessage(LVM_GETIMAGELIST, iImageList, 0);
1224 }
1225 
1227 {
1228  SortContext *ctx = ((SortContext *)lParamSort);
1229  return ctx->lvw->CompareFunc(lParam1, lParam2, ctx->iSubItem);
1230 }
1231 
1232 INT CAppsListView::CompareFunc(LPARAM lParam1, LPARAM lParam2, INT iSubItem)
1233 {
1234  ATL::CStringW Item1, Item2;
1235  LVFINDINFOW IndexInfo;
1236  INT Index;
1237 
1238  IndexInfo.flags = LVFI_PARAM;
1239 
1240  IndexInfo.lParam = lParam1;
1241  Index = FindItem(-1, &IndexInfo);
1242  GetItemText(Index, iSubItem, Item1.GetBuffer(MAX_STR_LEN), MAX_STR_LEN);
1243  Item1.ReleaseBuffer();
1244 
1245  IndexInfo.lParam = lParam2;
1246  Index = FindItem(-1, &IndexInfo);
1247  GetItemText(Index, iSubItem, Item2.GetBuffer(MAX_STR_LEN), MAX_STR_LEN);
1248  Item2.ReleaseBuffer();
1249 
1250  return bIsAscending ? Item1.Compare(Item2) : Item2.Compare(Item1);
1251 }
1252 
1254 {
1255  RECT r = { 205, 28, 465, 250 };
1257 
1259 
1260  if (hwnd)
1261  {
1263  }
1264 
1268  0, 1);
1269 
1270  // currently, this two Imagelist is the same one.
1273 
1274  return hwnd;
1275 }
1276 
1278 {
1279  return (BOOL)(GetItemState(item, LVIS_STATEIMAGEMASK) >> 12) - 1;
1280 }
1281 
1283 {
1284  if (bHasCheckboxes)
1285  {
1287  }
1288 }
1289 
1291 {
1292  if (bHasCheckboxes)
1293  {
1294  if (CheckedItemCount == ItemCount)
1295  {
1296  // clear all
1297  SetCheckState(-1, FALSE);
1298  }
1299  else
1300  {
1301  // check all
1302  SetCheckState(-1, TRUE);
1303  }
1304  }
1305 }
1306 
1308 {
1310  if (item == -1)
1311  {
1312  return (PVOID)0;
1313  }
1314  return (PVOID)GetItemData(item);
1315 }
1316 
1318 {
1319  if (!DeleteAllItems()) return FALSE;
1320  ApplicationViewType = AppType;
1321 
1322  bIsAscending = TRUE;
1323 
1324  ItemCount = 0;
1325  CheckedItemCount = 0;
1326 
1327  // delete old columns
1328  while (ColumnCount)
1329  {
1331  }
1332 
1334 
1335  // add new columns
1337  switch (AppType)
1338  {
1340 
1341  /* Add columns to ListView */
1342  szText.LoadStringW(IDS_APP_NAME);
1344 
1345  szText.LoadStringW(IDS_APP_INST_VERSION);
1347 
1348  szText.LoadStringW(IDS_APP_DESCRIPTION);
1350 
1351  // disable checkboxes
1353  break;
1354 
1356 
1357  /* Add columns to ListView */
1358  szText.LoadStringW(IDS_APP_NAME);
1360 
1361  szText.LoadStringW(IDS_APP_INST_VERSION);
1363 
1364  szText.LoadStringW(IDS_APP_DESCRIPTION);
1366 
1367  // enable checkboxes
1369  break;
1370 
1371  case AppViewTypeEmpty:
1372  default:
1373  break;
1374  }
1375 
1376 
1377  return TRUE;
1378 }
1379 
1381 {
1382  return SendMessage(LVM_SETVIEW, (WPARAM)ViewMode, 0) == 1;
1383 }
1384 
1386 {
1388  {
1389  return FALSE;
1390  }
1391 
1392  /* Load icon from registry */
1393  HICON hIcon = NULL;
1394  ATL::CStringW szIconPath;
1395  if (InstAppInfo->RetrieveIcon(szIconPath))
1396  {
1397  PathParseIconLocationW((LPWSTR)szIconPath.GetString());
1398 
1399  /* Load only the 1st icon from the application executable,
1400  * because all apps provide the executables which have the main icon
1401  * as 1st in the index , so we don't need other icons here */
1403  szIconPath.GetString(),
1404  0);
1405  }
1406 
1407  if (!hIcon)
1408  {
1409  /* Load default icon */
1411  }
1412 
1414  DestroyIcon(hIcon);
1415 
1416  int Index = AddItem(ItemCount, IconIndex, InstAppInfo->szDisplayName, (LPARAM)CallbackParam);
1417  SetItemText(Index, 1, InstAppInfo->szDisplayVersion.IsEmpty() ? L"---" : InstAppInfo->szDisplayVersion);
1418  SetItemText(Index, 2, InstAppInfo->szComments.IsEmpty() ? L"---" : InstAppInfo->szComments);
1419 
1420  ItemCount++;
1421  return TRUE;
1422 }
1423 
1425 {
1427  {
1428  return FALSE;
1429  }
1430 
1431  /* Load icon from file */
1432  HICON hIcon = NULL;
1433  ATL::CStringW szIconPath;
1434  if (AvlbAppInfo->RetrieveIcon(szIconPath))
1435  {
1437  szIconPath.GetString(),
1438  IMAGE_ICON,
1441  LR_LOADFROMFILE);
1442  }
1443 
1444  if (!hIcon || GetLastError() != ERROR_SUCCESS)
1445  {
1446  /* Load default icon */
1448  }
1449 
1451  DestroyIcon(hIcon);
1452 
1453  int Index = AddItem(ItemCount, IconIndex, AvlbAppInfo->m_szName, (LPARAM)CallbackParam);
1454 
1455  if (InitCheckState)
1456  {
1458  }
1459 
1460  SetItemText(Index, 1, AvlbAppInfo->m_szVersion);
1461  SetItemText(Index, 2, AvlbAppInfo->m_szDesc);
1462 
1463  ItemCount++;
1464  return TRUE;
1465 }
1466 
1467 // this function is called when parent window receiving an notification about checkstate changing
1469 {
1470  if (bCheck)
1471  {
1472  CheckedItemCount++;
1473  }
1474  else
1475  {
1476  CheckedItemCount--;
1477  }
1478 }
1479 // **** CAppsListView ****
1480 
1481 
1482 // **** CApplicationView ****
1483 
1485 {
1486  theResult = 0;
1487  switch (message)
1488  {
1489  case WM_CREATE:
1490  {
1491  BOOL bSuccess = TRUE;
1492  m_Panel = new CUiPanel();
1495 
1496  bSuccess &= CreateToolbar();
1498  bSuccess &= CreateComboBox();
1500  bSuccess &= CreateListView();
1502 
1503  m_Toolbar->AutoSize();
1504 
1505  RECT rTop;
1506 
1507  ::GetWindowRect(m_Toolbar->m_hWnd, &rTop);
1508  m_HSplitter->m_Margin.top = rTop.bottom - rTop.top;
1509  if (!bSuccess)
1510  {
1511  return -1; // creation failure
1512  }
1513  }
1514  break;
1515 
1516  case WM_NOTIFY:
1517  {
1518  LPNMHDR pNotifyHeader = (LPNMHDR)lParam;
1519  if (pNotifyHeader->hwndFrom == m_ListView->GetWindow())
1520  {
1521  switch (pNotifyHeader->code)
1522  {
1523  case LVN_ITEMCHANGED:
1524  {
1526 
1527  /* Check if this is a valid item
1528  * (technically, it can be also an unselect) */
1529  INT ItemIndex = pnic->iItem;
1530  if (ItemIndex == -1 ||
1531  ItemIndex >= ListView_GetItemCount(pnic->hdr.hwndFrom))
1532  {
1533  break;
1534  }
1535 
1536  /* Check if the focus has been moved to another item */
1537  if ((pnic->uChanged & LVIF_STATE) &&
1538  (pnic->uNewState & LVIS_FOCUSED) &&
1539  !(pnic->uOldState & LVIS_FOCUSED))
1540  {
1541  ItemGetFocus((LPVOID)pnic->lParam);
1542  }
1543 
1544  /* Check if the item is checked/unchecked */
1545  if (pnic->uChanged & LVIF_STATE)
1546  {
1547  int iOldState = STATEIMAGETOINDEX(pnic->uOldState);
1548  int iNewState = STATEIMAGETOINDEX(pnic->uNewState);
1549 
1550  if (iOldState == STATEIMAGE_UNCHECKED && iNewState == STATEIMAGE_CHECKED)
1551  {
1552  // this item is just checked
1555  }
1556  else if (iOldState == STATEIMAGE_CHECKED && iNewState == STATEIMAGE_UNCHECKED)
1557  {
1558  // this item is just unchecked
1561  }
1562  }
1563  }
1564  break;
1565 
1566  case LVN_COLUMNCLICK:
1567  {
1569 
1570  m_ListView->ColumnClick(pnmv);
1571  }
1572  break;
1573 
1574  case NM_DBLCLK:
1575  {
1577  if (Item->iItem != -1)
1578  {
1579  /* this won't do anything if the program is already installed */
1580 
1582  {
1584  }
1585  }
1586  }
1587  break;
1588 
1589  case NM_RCLICK:
1590  {
1591  if (((LPNMLISTVIEW)lParam)->iItem != -1)
1592  {
1593  ShowPopupMenuEx(m_hWnd, m_hWnd, 0, ID_INSTALL);
1594  }
1595  }
1596  break;
1597  }
1598  }
1599  else if (pNotifyHeader->hwndFrom == m_Toolbar->GetWindow())
1600  {
1601  switch (pNotifyHeader->code)
1602  {
1603  case TTN_GETDISPINFO:
1605  break;
1606  }
1607  }
1608  }
1609  break;
1610 
1611  case WM_SYSCOLORCHANGE:
1612  {
1613  /* Forward WM_SYSCOLORCHANGE to common controls */
1614  m_ListView->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1616  m_Toolbar->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1617  m_ComboBox->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1618  }
1619  break;
1620 
1621  case WM_SIZE:
1622  {
1623  OnSize(hwnd, wParam, lParam);
1624  break;
1625  }
1626 
1627  case WM_COMMAND:
1628  {
1630  }
1631  break;
1632  }
1633  return FALSE;
1634 }
1635 
1637 {
1638  m_Toolbar = new CMainToolbar();
1642 
1643  return m_Toolbar->Create(m_hWnd) != NULL;
1644 }
1645 
1647 {
1651  m_SearchBar->m_Margin.top = 4;
1653 
1654  return m_SearchBar->Create(m_Toolbar->m_hWnd) != NULL;
1655 }
1656 
1658 {
1662  m_ComboBox->m_Margin.top = 4;
1663 
1664  return m_ComboBox->Create(m_Toolbar->m_hWnd) != NULL;
1665 }
1666 
1668 {
1669  m_HSplitter = new CUiSplitPanel();
1674  m_HSplitter->m_Pos = INT_MAX; //set INT_MAX to use lowest possible position (m_MinSecond)
1675  m_HSplitter->m_MinFirst = 10;
1676  m_HSplitter->m_MinSecond = 140;
1678 
1679  return m_HSplitter->Create(m_hWnd) != NULL;
1680 }
1681 
1683 {
1684  m_ListView = new CAppsListView();
1688 
1689  return m_ListView->Create(m_hWnd) != NULL;
1690 }
1691 
1693 {
1694  m_AppsInfo = new CAppInfoDisplay();
1698 
1699  return m_AppsInfo->Create(m_hWnd) != NULL;
1700 }
1701 
1703 {
1704  if (wParam == SIZE_MINIMIZED)
1705  return;
1706 
1707  /* Size tool bar */
1708  m_Toolbar->AutoSize();
1709 
1710  /* Automatically hide captions */
1711  DWORD dToolbarTreshold = m_Toolbar->GetMaxButtonsWidth();
1712  DWORD dSearchbarMargin = (LOWORD(lParam) - m_SearchBar->m_Width - m_ComboBox->m_Width - TOOLBAR_PADDING * 2);
1713 
1714  if (dSearchbarMargin > dToolbarTreshold)
1715  {
1717  }
1718  else if (dSearchbarMargin < dToolbarTreshold)
1719  {
1721 
1722  }
1723 
1724  RECT r = { 0, 0, LOWORD(lParam), HIWORD(lParam) };
1725  HDWP hdwp = NULL;
1727 
1728  hdwp = BeginDeferWindowPos(count);
1729  if (hdwp)
1730  {
1731  hdwp = m_Panel->OnParentSize(r, hdwp);
1732  if (hdwp)
1733  {
1734  EndDeferWindowPos(hdwp);
1735  }
1736  }
1737 
1739  hdwp = BeginDeferWindowPos(count);
1740  if (hdwp)
1741  {
1742  hdwp = m_SearchBar->OnParentSize(r, hdwp);
1743  if (hdwp)
1744  {
1745  EndDeferWindowPos(hdwp);
1746  }
1747  }
1748 
1751  hdwp = BeginDeferWindowPos(count);
1752  if (hdwp)
1753  {
1754  hdwp = m_ComboBox->OnParentSize(r, hdwp);
1755  if (hdwp)
1756  {
1757  EndDeferWindowPos(hdwp);
1758  }
1759  }
1760 }
1761 
1763 {
1764  if (lParam)
1765  {
1766  if ((HWND)lParam == m_SearchBar->GetWindow())
1767  {
1768  ATL::CStringW szBuf;
1769  switch (HIWORD(wParam))
1770  {
1771  case EN_SETFOCUS:
1772  {
1773  ATL::CStringW szWndText;
1774 
1775  szBuf.LoadStringW(IDS_SEARCH_TEXT);
1776  m_SearchBar->GetWindowTextW(szWndText);
1777  if (szBuf == szWndText)
1778  {
1779  m_SearchBar->SetWindowTextW(L"");
1780  }
1781  }
1782  break;
1783 
1784  case EN_KILLFOCUS:
1785  {
1786  m_SearchBar->GetWindowTextW(szBuf);
1787  if (szBuf.IsEmpty())
1788  {
1789  szBuf.LoadStringW(IDS_SEARCH_TEXT);
1790  m_SearchBar->SetWindowTextW(szBuf.GetString());
1791  }
1792  }
1793  break;
1794 
1795  case EN_CHANGE:
1796  {
1797  ATL::CStringW szWndText;
1798 
1799  szBuf.LoadStringW(IDS_SEARCH_TEXT);
1800  m_SearchBar->GetWindowTextW(szWndText);
1801  if (szBuf == szWndText)
1802  {
1803  szWndText = L"";
1804  m_MainWindow->SearchTextChanged(szWndText);
1805  }
1806  else
1807  {
1808  m_MainWindow->SearchTextChanged(szWndText);
1809  }
1810  }
1811  break;
1812  }
1813 
1814  return;
1815  }
1816  else if ((HWND)lParam == m_ComboBox->GetWindow())
1817  {
1818  int NotifyCode = HIWORD(wParam);
1819  switch (NotifyCode)
1820  {
1821  case CBN_SELCHANGE:
1822  int CurrSelection = m_ComboBox->SendMessageW(CB_GETCURSEL);
1823 
1824  int ViewModeList[] = { LV_VIEW_DETAILS, LV_VIEW_LIST, LV_VIEW_TILE };
1825  ATLASSERT(CurrSelection < (int)_countof(ViewModeList));
1826  if (!m_ListView->SetViewMode(ViewModeList[CurrSelection]))
1827  {
1828  MessageBoxW(L"View mode invalid or unimplemented");
1829  }
1830  break;
1831  }
1832 
1833  return;
1834  }
1835  else if ((HWND)lParam == m_Toolbar->GetWindow())
1836  {
1837  // the message is sent from Toolbar. fall down to continue process
1838  }
1839  else
1840  {
1841  return;
1842  }
1843  }
1844 
1845  // the LOWORD of wParam contains a Menu or Control ID
1846  WORD wCommand = LOWORD(wParam);
1847 
1848  switch (wCommand)
1849  {
1850  case ID_INSTALL:
1852  break;
1853 
1854  case ID_TOOLBAR_INSTALL:
1855  m_MainWindow->SendMessageW(WM_COMMAND, ID_INSTALL, 0);
1856  break;
1857 
1858  case ID_UNINSTALL:
1859  m_MainWindow->SendMessageW(WM_COMMAND, ID_UNINSTALL, 0);
1860  break;
1861 
1862  case ID_MODIFY:
1863  m_MainWindow->SendMessageW(WM_COMMAND, ID_MODIFY, 0);
1864  break;
1865 
1866  case ID_REGREMOVE:
1867  m_MainWindow->SendMessageW(WM_COMMAND, ID_REGREMOVE, 0);
1868  break;
1869 
1870  case ID_REFRESH:
1871  m_MainWindow->SendMessageW(WM_COMMAND, ID_REFRESH, 0);
1872  break;
1873 
1874  case ID_RESETDB:
1875  m_MainWindow->SendMessageW(WM_COMMAND, ID_RESETDB, 0);
1876  break;
1877  }
1878 }
1879 
1881  : m_MainWindow(MainWindow)
1882 {
1883 }
1884 
1886 {
1887  delete m_Toolbar;
1888  delete m_SearchBar;
1889  delete m_ListView;
1890  delete m_AppsInfo;
1891  delete m_HSplitter;
1892 }
1893 
1895 {
1896  DWORD csStyle = CS_VREDRAW | CS_HREDRAW;
1897  static ATL::CWndClassInfo wc =
1898  {
1899  {
1900  sizeof(WNDCLASSEX),
1901  csStyle,
1902  StartWindowProc,
1903  0,
1904  0,
1905  NULL,
1906  NULL,
1907  NULL,
1908  (HBRUSH)(COLOR_BTNFACE + 1),
1909  NULL,
1910  L"RAppsApplicationView",
1911  NULL
1912  },
1913  NULL, NULL, IDC_ARROW, TRUE, 0, _T("")
1914  };
1915  return wc;
1916 }
1917 
1919 {
1920  RECT r = { 0,0,0,0 };
1921 
1923 
1925 }
1926 
1928 {
1929  if (!m_ListView->SetDisplayAppType(AppType))
1930  {
1931  return FALSE;
1932  }
1933  ApplicationViewType = AppType;
1935 
1936  HMENU hMenu = ::GetMenu(m_hWnd);
1937  switch (AppType)
1938  {
1939  case AppViewTypeEmpty:
1940  default:
1945 
1946  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_REGREMOVE, TRUE);
1947  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, FALSE);
1948  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_UNINSTALL, TRUE);
1949  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, TRUE);
1950  break;
1951 
1957 
1958  // TODO: instead of disable these button, I would rather remove them.
1959  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_REGREMOVE, TRUE);
1960  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, FALSE);
1961  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_UNINSTALL, TRUE);
1962  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, TRUE);
1963  break;
1964 
1970 
1971  // TODO: instead of disable these button, I would rather remove them.
1972  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_REGREMOVE, FALSE);
1973  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, TRUE);
1974  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_UNINSTALL, FALSE);
1975  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, FALSE);
1976  break;
1977  }
1978  return TRUE;
1979 }
1980 
1982 {
1984  {
1985  return FALSE;
1986  }
1987  return m_ListView->AddInstalledApplication(InstAppInfo, param);
1988 }
1989 
1991 {
1993  {
1994  return FALSE;
1995  }
1996  return m_ListView->AddAvailableApplication(AvlbAppInfo, InitCheckState, param);
1997 }
1998 
2000 {
2001  m_ListView->CheckAll();
2002  return;
2003 }
2004 
2006 {
2007  return m_ListView->GetFocusedItemData();
2008 }
2009 
2011 {
2012  return m_ListView->GetItemCount();
2013 }
2014 
2016 {
2017  m_Toolbar->AppendTabOrderWindow(Direction, TabOrderList);
2018  m_ComboBox->AppendTabOrderWindow(Direction, TabOrderList);
2019  m_SearchBar->AppendTabOrderWindow(Direction, TabOrderList);
2020  m_ListView->AppendTabOrderWindow(Direction, TabOrderList);
2021  m_AppsInfo->AppendTabOrderWindow(Direction, TabOrderList);
2022 
2023  return;
2024 }
2025 
2026 // this function is called when a item of listview get focus.
2027 // CallbackParam is the param passed to listview when adding the item (the one getting focus now).
2029 {
2030  switch (ApplicationViewType)
2031  {
2033  return m_AppsInfo->ShowInstalledAppInfo((CInstalledApplicationInfo *)CallbackParam);
2034 
2036  return m_AppsInfo->ShowAvailableAppInfo((CAvailableApplicationInfo *)CallbackParam);
2037 
2038  case AppViewTypeEmpty:
2039  default:
2041  return FALSE;
2042  }
2043 }
2044 
2045 // this function is called when a item of listview is checked/unchecked
2046 // CallbackParam is the param passed to listview when adding the item (the one getting focus now).
2048 {
2049  m_MainWindow->ItemCheckStateChanged(bChecked, CallbackParam);
2050  return TRUE;
2051 }
2052 // **** CApplicationView ****
BOOL bIsAscending
Definition: appview.h:213
HGDIOBJ WINAPI GetStockObject(_In_ int)
_STLP_DECLSPEC complex< float > _STLP_CALL sqrt(const complex< float > &)
Definition: complex.cpp:188
#define IDS_AINFO_VERSION
Definition: resource.h:161
BOOL AddAvailableApplication(CAvailableApplicationInfo *AvlbAppInfo, BOOL InitCheckState, LPVOID CallbackParam)
Definition: appview.cpp:1424
#define WS_CLIPSIBLINGS
Definition: pedump.c:618
DWORD GetMaxButtonsWidth() const
Definition: appview.cpp:174
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesWritten
Definition: wdfiotarget.h:949
BOOL WINAPI CreateDirectoryW(IN LPCWSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes)
Definition: dir.c:90
#define IDS_INFO_INSTALLDATE
Definition: resource.h:158
struct __ScrnshotDownloadParam ScrnshotDownloadParam
ASYNC_EVENT
Definition: asyncinet.h:5
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
Definition: path.c:1702
int m_Width
Definition: appview.h:328
DWORD_PTR GetItemData(int i)
Definition: rosctrls.h:204
#define IDI_UNINSTALL
Definition: resource.h:7
#define IDS_INFO_PUBLISHER
Definition: resource.h:144
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
Definition: rw.c:24
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define MAKEINTRESOURCE
Definition: winuser.h:591
GLint GLint GLsizei width
Definition: gl.h:1546
pASYNCINET AsyncInet
Definition: appview.h:133
#define WM_SYSCOLORCHANGE
Definition: winuser.h:1608
VOID OnGetDispInfo(LPTOOLTIPTEXT lpttt)
Definition: appview.cpp:71
const UINT m_TypeStringID[3]
Definition: appview.h:322
#define max(a, b)
Definition: svc.c:63
Definition: tftpd.h:59
static HICON
Definition: imagelist.c:84
HDWP WINAPI BeginDeferWindowPos(_In_ int)
BOOL AddAvailableApplication(CAvailableApplicationInfo *AvlbAppInfo, BOOL InitCheckState, LPVOID param)
Definition: appview.cpp:1990
#define ID_REFRESH
Definition: resource.h:16
#define CloseHandle
Definition: compat.h:598
#define IMAGE_ICON
Definition: winuser.h:212
INT nLastHeaderID
Definition: appview.h:220
BOOL ShowInstalledAppInfo(CInstalledApplicationInfo *Info)
Definition: appview.cpp:394
#define IDS_STATUS_INSTALLED
Definition: resource.h:194
#define ID_SETTINGS
Definition: resource.h:81
#define LVCF_WIDTH
Definition: commctrl.h:2583
static Bitmap * FromFile(const WCHAR *filename, BOOL useEmbeddedColorManagement)
#define LVSIL_SMALL
Definition: commctrl.h:2295
#define SW_SHOWNOACTIVATE
Definition: winuser.h:768
_In_ ULONG NotifyCode
Definition: winddi.h:4265
CUiCollection & Second()
Definition: rosui.h:568
BOOL AddInstalledApplication(CInstalledApplicationInfo *InstAppInfo, LPVOID param)
Definition: appview.cpp:1981
#define ERROR_SUCCESS
Definition: deptool.c:10
UINT uNewState
Definition: commctrl.h:3032
#define INT_MAX
Definition: limits.h:40
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
#define TBSTYLE_EX_HIDECLIPPEDBUTTONS
Definition: commctrl.h:1009
CUiWindow< CSearchBar > * m_SearchBar
Definition: appview.h:343
BOOL CreateComboBox()
Definition: appview.cpp:1657
#define ID_REGREMOVE
Definition: resource.h:83
#define IDS_LANGUAGE_SINGLE
Definition: resource.h:212
#define LVCF_TEXT
Definition: commctrl.h:2584
WDF_EXTERN_C_START typedef _In_ WDFDEVICE _In_ WDFCONTEXT _In_ WDF_DMA_DIRECTION Direction
#define ATLASSERT(x)
Definition: CComVariant.cpp:10
VOID ShowButtonCaption()
Definition: appview.cpp:168
#define LVM_GETIMAGELIST
Definition: commctrl.h:2291
#define IDS_AINFO_AVAILABLEVERSION
Definition: resource.h:167
#define LVS_SHOWSELALWAYS
Definition: commctrl.h:2263
HBITMAP WINAPI CreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
int GetSelectionMark()
Definition: rosctrls.h:156
BOOL WINAPI DestroyIcon(_In_ HICON)
Definition: cursoricon.c:2022
#define TRUE
Definition: types.h:120
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
CAppScrnshotPreview * ScrnshotPrev
Definition: appview.h:187
#define IDS_SELECT_ALL
Definition: resource.h:116
VOID ItemCheckStateNotify(int iItem, BOOL bCheck)
Definition: appview.cpp:1468
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
#define LISTVIEW_ICON_SIZE
Definition: appview.h:23
struct @1616 Msg[]
#define LR_LOADFROMFILE
Definition: winuser.h:1082
_In_ BOOLEAN Create
Definition: pstypes.h:519
SCRNSHOT_STATUS ScrnshotPrevStauts
Definition: appview.h:127
#define LVS_REPORT
Definition: commctrl.h:2258
#define IDS_AINFO_LICENSE
Definition: resource.h:165
virtual DWORD_PTR CountSizableChildren()
Definition: rosui.h:476
GLuint GLuint GLsizei count
Definition: gl.h:1545
void DeleteColumn(INT Index)
Definition: appview.cpp:1195
#define IDS_INFO_INSTALLSRC
Definition: resource.h:155
BOOL ProcessWindowMessage(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT &theResult, DWORD dwMapId)
Definition: appview.cpp:891
#define LVN_ITEMCHANGED
Definition: commctrl.h:3127
VOID InsertLicenseInfo(CAvailableApplicationInfo *Info)
Definition: appview.cpp:291
#define IDS_AINFO_URLSITE
Definition: resource.h:164
#define LVCFMT_RIGHT
Definition: commctrl.h:2595
INT m_MinFirst
Definition: rosui.h:544
static HDC
Definition: imagelist.c:92
LPARAM lParam
Definition: commctrl.h:2454
#define CALLBACK
Definition: compat.h:35
static ATL::CWndClassInfo & GetWndClassInfo()
Definition: appview.cpp:736
BOOL WINAPI UpdateWindow(_In_ HWND)
PVOID GetFocusedItemData()
Definition: appview.cpp:1307
#define TOOLBARCLASSNAMEW
Definition: commctrl.h:939
BOOL SetViewMode(DWORD ViewMode)
Definition: appview.cpp:1380
#define LVS_EX_FULLROWSELECT
Definition: commctrl.h:2730
LONG top
Definition: windef.h:307
#define DI_COMPAT
Definition: wingdi.h:68
HANDLE HWND
Definition: compat.h:19
#define GET_X_LPARAM(lp)
Definition: windowsx.h:274
const INT m_Width
Definition: appview.h:303
#define IDS_TOOLTIP_EXIT
Definition: resource.h:133
#define IDS_INFO_README
Definition: resource.h:147
#define IDS_WELCOME_TITLE
Definition: resource.h:96
#define IDS_WELCOME_TEXT
Definition: resource.h:97
#define LVCFMT_LEFT
Definition: commctrl.h:2594
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1499
#define INVALID_HANDLE_VALUE
Definition: compat.h:590
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1044
#define ZeroMemory
Definition: winbase.h:1664
#define CS_HREDRAW
Definition: winuser.h:648
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
VOID SetWelcomeText()
Definition: appview.cpp:421
void __cdecl Format(UINT nFormatID,...)
Definition: cstringt.h:716
#define HDF_SORTUP
Definition: commctrl.h:720
#define STATEIMAGE_UNCHECKED
Definition: appview.h:65
#define CFE_LINK
Definition: richedit.h:411
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
#define BTNS_AUTOSIZE
Definition: commctrl.h:1000
UINT_PTR WPARAM
Definition: windef.h:207
void EndPaint(LPPAINTSTRUCT lpPaint)
Definition: atlwin.h:495
#define ID_RESETDB
Definition: resource.h:84
#define WS_CHILD
Definition: pedump.c:617
ATL::CStringW szDisplayVersion
Definition: installed.h:25
HWND Create(HWND hParent)
Definition: appview.cpp:760
#define TIMER_LOADING_ANIMATION
Definition: appview.h:52
DWORD GetIdealSize(BOOL useHeight, LPSIZE size)
Definition: rosctrls.h:388
#define IDS_SEARCH_TEXT
Definition: resource.h:91
int32_t INT_PTR
Definition: typedefs.h:64
BOOL ProcessWindowMessage(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT &theResult, DWORD dwMapId)
Definition: appview.cpp:1484
VOID SetStatus(SCRNSHOT_STATUS Status)
Definition: appview.cpp:628
int GetItemCount()
Definition: rosctrls.h:121
#define WS_CLIPCHILDREN
Definition: pedump.c:619
#define ID_TOOLBAR_INSTALL
Definition: resource.h:87
LONG right
Definition: windef.h:308
Status SetSmoothingMode(SmoothingMode smoothingMode)
HWND Create(HWND hWndParent, _U_RECT rect, LPCTSTR szWindowName=NULL, DWORD dwStyle=0, DWORD dwExStyle=0, _U_MENUorID MenuOrID=0U, LPVOID lpCreateParam=NULL)
Definition: rosctrls.h:8
const INT m_Height
Definition: appview.h:304
DWORD SetButtonStructSize()
Definition: rosctrls.h:286
#define ID_UNINSTALL
Definition: resource.h:75
DWORD m_dButtonsWidthMax
Definition: appview.h:273
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
Definition: winuser.h:4291
#define DWORD
Definition: nt_native.h:44
int32_t INT
Definition: typedefs.h:58
VOID AppendTabOrderWindow(int Direction, ATL::CSimpleArray< HWND > &TabOrderList)
Definition: appview.cpp:2015
static BOOLEAN bSuccess
Definition: drive.cpp:432
#define CB_GETCURSEL
Definition: winuser.h:1925
static int Link(const char **args)
Definition: vfdcmd.c:2414
DWORD WINAPI GetSysColor(_In_ int)
& rect
Definition: startmenu.cpp:1413
WPARAM wParam
Definition: combotst.c:138
#define IDR_APPLICATIONMENU
Definition: resource.h:70
struct tagNMHDR * LPNMHDR
#define ImageList_RemoveAll(himl)
Definition: commctrl.h:552
struct Color Color
#define IDI_UPDATE_DB
Definition: resource.h:14
#define WM_PRINTCLIENT
Definition: richedit.h:70
UINT GetHeight()
#define LVFI_PARAM
Definition: commctrl.h:2432
BOOL SetDisplayAppType(APPLICATION_VIEW_TYPE AppType)
Definition: appview.cpp:1927
BOOL WINAPI PathIsURLW(LPCWSTR lpstrPath)
Definition: url.c:2432
BOOL WINAPI PathAppendW(LPWSTR lpszPath, LPCWSTR lpszAppend)
Definition: path.c:121
HICON WINAPI ExtractIconW(HINSTANCE hInstance, LPCWSTR lpszFile, UINT nIconIndex)
Definition: shell32_main.c:881
VOID ColumnClick(LPNMLISTVIEW pnmv)
Definition: appview.cpp:1136
BOOL WINAPI ImageList_Destroy(HIMAGELIST himl)
Definition: imagelist.c:928
DWORD SetExtendedListViewStyle(DWORD dw, DWORD dwMask=0)
Definition: rosctrls.h:47
#define CFE_BOLD
Definition: richedit.h:406
BOOL InvalidateRect(LPCRECT lpRect, BOOL bErase=TRUE)
Definition: atlwin.h:837
#define IDS_INFO_COMMENTS
Definition: resource.h:153
virtual HDWP OnParentSize(RECT parentRect, HDWP hDwp)
Definition: rosui.h:421
#define LVIF_TEXT
Definition: commctrl.h:2305
#define LVCF_SUBITEM
Definition: commctrl.h:2585
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Definition: wdfchildlist.h:683
#define LVM_INSERTCOLUMN
Definition: commctrl.h:2630
VOID OnCommand(WPARAM wParam, LPARAM lParam)
Definition: appview.cpp:1762
UINT code
Definition: winuser.h:3134
#define STATEIMAGETOINDEX(x)
Definition: appview.h:61
HWND Create(HWND hwndParent)
Definition: appview.cpp:1918
BOOL WINAPI PatBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD)
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
ATL::CStringW m_szDesc
Definition: available.h:50
#define IDS_INSTALL
Definition: resource.h:9
VOID PaintOnDC(HDC hdc, int width, int height, BOOL bDrawBkgnd)
Definition: appview.cpp:633
#define BTNS_BUTTON
Definition: commctrl.h:994
HWND Create(HWND hwndParent)
Definition: appview.cpp:107
#define EN_KILLFOCUS
Definition: winuser.h:2007
BOOL WINAPI EnableMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
#define IDS_MODIFY
Definition: resource.h:94
#define EN_SETFOCUS
Definition: winuser.h:2009
HIMAGELIST WINAPI ImageList_Create(INT cx, INT cy, UINT flags, INT cInitial, INT cGrow)
Definition: imagelist.c:804
DWORD AddButtons(int count, TBBUTTON *buttons)
Definition: rosctrls.h:332
INT Append(T *ptr)
Definition: rosui.h:79
BOOL DeleteAllItems()
Definition: rosctrls.h:126
void ReleaseBuffer(_In_ int nNewLength=-1)
Definition: atlsimpstr.h:372
ATL::CStringW szDisplayName
Definition: installed.h:24
#define RICHEDIT_MIN_WIDTH
Definition: appview.h:35
BOOL SetItemText(int i, int subItem, LPCWSTR text)
Definition: rosctrls.h:186
#define FALSE
Definition: types.h:117
static const WCHAR szText[]
Definition: dialog.c:139
const INT m_iToolbarHeight
Definition: appview.h:272
unsigned int BOOL
Definition: ntddk_ex.h:94
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_ UINT, _In_ int, _In_ int, _In_ UINT)
Definition: cursoricon.c:2172
VOID InsertLanguageInfo(CAvailableApplicationInfo *Info)
Definition: appview.cpp:314
GLuint color
Definition: glext.h:6243
BOOL ItemGetFocus(LPVOID CallbackParam)
Definition: appview.cpp:2028
BOOL CreateHSplitter()
Definition: appview.cpp:1667
BOOL ShowInstalledAppInfo(CInstalledApplicationInfo *Info)
Definition: appview.cpp:1070
#define IDS_STATUS_UPDATE_AVAILABLE
Definition: resource.h:197
UINT_PTR SetTimer(UINT_PTR nIDEvent, UINT nElapse, void(CALLBACK *lpfnTimer)(HWND, UINT, UINT_PTR, DWORD)=NULL)
Definition: atlwin.h:1193
#define GENERIC_WRITE
Definition: nt_native.h:90
BOOL WINAPI EndDeferWindowPos(_In_ HDWP)
#define HDI_FORMAT
Definition: commctrl.h:701
BOOL GetClientRect(LPRECT lpRect) const
Definition: atlwin.h:507
CUiAlignment m_HorizontalAlignment
Definition: rosui.h:242
#define Header_GetItem(hwndHD, i, phdi)
Definition: commctrl.h:747
INT AddItem(INT ItemIndex, INT IconIndex, LPCWSTR lpText, LPARAM lParam)
Definition: appview.cpp:1201
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
Definition: delete.c:39
#define TTN_GETDISPINFO
Definition: commctrl.h:1874
#define TB_ENABLEBUTTON
Definition: commctrl.h:1038
BOOL KillTimer(UINT_PTR nIDEvent)
Definition: atlwin.h:911
#define CB_ADDSTRING
Definition: winuser.h:1918
#define IDS_UNINSTALL
Definition: resource.h:93
BOOL GetCheckState(INT item)
Definition: appview.cpp:1277
#define TB_GETEXTENDEDSTYLE
Definition: commctrl.h:1187
#define LVS_SORTASCENDING
Definition: commctrl.h:2264
VOID ResizeChildren()
Definition: appview.cpp:939
VOID OnLink(ENLINK *Link)
Definition: appview.cpp:997
static HWND hwndParent
Definition: cryptui.c:300
float GetLoadingDotWidth(int width, int height)
Definition: appview.cpp:723
UINT uOldState
Definition: commctrl.h:3033
LONG_PTR LPARAM
Definition: windef.h:208
#define LVS_AUTOARRANGE
Definition: commctrl.h:2268
#define CBS_DROPDOWNLIST
Definition: winuser.h:284
#define ListView_GetItemCount(hwnd)
Definition: commctrl.h:2303
DWORD AutoSize()
Definition: rosctrls.h:378
ATL::CStringW szComments
Definition: installed.h:35
#define IDS_INFO_CONTACT
Definition: resource.h:150
const int m_DefaultSelectType
Definition: appview.h:325
VOID InsertVersionInfo(CAvailableApplicationInfo *Info)
Definition: appview.cpp:265
#define INFO_DISPLAY_PADDING
Definition: appview.h:32
#define EM_SETBKGNDCOLOR
Definition: richedit.h:100
switch(r->id)
Definition: btrfs.c:2980
#define LVIS_STATEIMAGEMASK
Definition: commctrl.h:2322
HIMAGELIST SetImageList(HIMAGELIST himl)
Definition: rosctrls.h:424
INT m_MinSecond
Definition: rosui.h:545
void GetItemText(int iItem, int iSubItem, LPTSTR pszText, int cchTextMax)
Definition: rosctrls.h:221
#define WC_COMBOBOX
Definition: commctrl.h:4714
#define CBS_HASSTRINGS
Definition: winuser.h:285
static INT CALLBACK s_CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
Definition: appview.cpp:1226
SCRNSHOT_STATUS
Definition: appview.h:44
struct tagNMITEMACTIVATE * LPNMITEMACTIVATE
BOOL InstallApplication(CAvailableApplicationInfo *Info)
Definition: gui.cpp:781
#define WM_DESTROY
Definition: winuser.h:1591
WCHAR szSelectAll[MAX_STR_LEN]
Definition: appview.h:278
#define IDS_APP_DESCRIPTION
Definition: resource.h:139
WCHAR szModifyBtn[MAX_STR_LEN]
Definition: appview.h:277
virtual VOID AppendTabOrderWindow(int Direction, ATL::CSimpleArray< HWND > &TabOrderList)
Definition: rosui.h:500
BOOL ItemCheckStateChanged(BOOL bChecked, LPVOID CallbackParam)
Definition: appview.cpp:2047
#define LOADING_ANIMATION_PERIOD
Definition: appview.h:54
Status
Definition: gdiplustypes.h:24
HWND Create(HWND hwndParent)
Definition: rosui.h:803
BOOL SetDisplayAppType(APPLICATION_VIEW_TYPE AppType)
Definition: appview.cpp:1317
#define LPTOOLTIPTEXT
Definition: commctrl.h:1886
#define CS_VREDRAW
Definition: winuser.h:653
#define IDS_TOOLTIP_MODIFY
Definition: resource.h:130
int64_t LONGLONG
Definition: typedefs.h:68
LPWSTR pLink
Definition: appview.h:173
#define LV_VIEW_DETAILS
Definition: commctrl.h:2837
INT ColumnCount
Definition: appview.h:218
HWND GetWindow()
Definition: rosui.h:458
#define _T(x)
Definition: vfdio.h:22
#define InterlockedIncrement64
Definition: interlocked.h:211
static const TBBUTTON Buttons[]
Definition: mplay32.c:41
GLsizeiptr size
Definition: glext.h:5919
HDWP WINAPI DeferWindowPos(_In_ HDWP, _In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
#define WS_OVERLAPPED
Definition: pedump.c:615
#define GetProcessHeap()
Definition: compat.h:595
#define BTNS_SEP
Definition: commctrl.h:995
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
VOID AddImageToImageList(HIMAGELIST hImageList, UINT ImageIndex)
Definition: appview.cpp:16
#define PI
Definition: appview.h:58
BOOL m_DynamicFirst
Definition: rosui.h:543
int WINAPI MessageBoxW(_In_opt_ HWND, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_ UINT)
static AvailableStrings m_Strings
Definition: available.h:111
#define PRF_ERASEBKGND
Definition: winuser.h:2501
HDC BeginPaint(LPPAINTSTRUCT lpPaint)
Definition: atlwin.h:297
__wchar_t WCHAR
Definition: xmlstorage.h:180
INT GetSystemColorDepth()
Definition: misc.cpp:489
VOID SetCheckState(INT item, BOOL fCheck)
Definition: appview.cpp:1282
HIMAGELIST m_hImageListView
Definition: appview.h:224
BOOL WINAPI DrawIconEx(_In_ HDC, _In_ int, _In_ int, _In_ HICON, _In_ int, _In_ int, _In_ UINT, _In_opt_ HBRUSH, _In_ UINT)
Definition: cursoricon.c:1997
#define WM_SIZE
Definition: winuser.h:1593
#define IDS_STATUS_NOTINSTALLED
Definition: resource.h:195
#define WM_RAPPS_DOWNLOAD_COMPLETE
Definition: appview.h:41
#define IDS_TOOLTIP_REFRESH
Definition: resource.h:48
BOOL bHasCheckboxes
Definition: appview.h:214
Status DrawImage(Image *image, const Point *destPoints, INT count)
_In_ WDFCOLLECTION _In_ ULONG Index
INT ItemCount
Definition: appview.h:216
ATL::CStringW m_szVersion
Definition: available.h:48
#define TOOLBAR_PADDING
Definition: appview.h:38
#define _countof(array)
Definition: sndvol32.h:68
#define WM_TIMER
Definition: winuser.h:1724
float GetFrameDotShift(int Frame, int width, int height)
Definition: appview.cpp:728
CApplicationView(CMainWindow *MainWindow)
Definition: appview.cpp:1880
#define MF_ENABLED
Definition: winuser.h:128
#define INDEXTOSTATEIMAGEMASK(i)
Definition: commctrl.h:2324
#define IDS_AINFO_LANGUAGES
Definition: resource.h:168
BOOL AddColumn(INT Index, ATL::CStringW &Text, INT Width, INT Format)
Definition: appview.cpp:1175
GLfloat param
Definition: glext.h:5796
#define MAX_PATH
Definition: compat.h:34
HWND Create(HWND hwndParent)
Definition: appview.cpp:192
PCXSTR GetString() const
Definition: atlsimpstr.h:361
#define EM_SETSEL
Definition: winuser.h:2000
CUiCollection & First()
Definition: rosui.h:567
#define LVIF_IMAGE
Definition: commctrl.h:2306
UINT WINAPI GetTempFileNameW(IN LPCWSTR lpPathName, IN LPCWSTR lpPrefixString, IN UINT uUnique, OUT LPWSTR lpTempFileName)
Definition: filename.c:84
LPWSTR pszText
Definition: commctrl.h:2563
BOOL DisplayFile(LPCWSTR lpszFileName)
Definition: appview.cpp:615
#define LVS_SINGLESEL
Definition: commctrl.h:2262
unsigned short WORD
Definition: ntddk_ex.h:93
#define HDF_SORTDOWN
Definition: commctrl.h:721
VOID GetWindowTextW(ATL::CStringW &szText)
Definition: rosui.h:514
unsigned long DWORD
Definition: ntddk_ex.h:95
#define ID_COPY_LINK
Definition: resource.h:80
BOOL RetrieveIcon(ATL::CStringW &IconLocation)
Definition: installed.cpp:129
#define IDS_INFO_VERSION
Definition: resource.h:142
LONGLONG ContentID
Definition: appview.h:134
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
Definition: cursoricon.c:2074
#define SIZE_MINIMIZED
Definition: winuser.h:2481
#define TBSTYLE_TOOLTIPS
Definition: commctrl.h:985
#define PRF_CHECKVISIBLE
Definition: winuser.h:2498
BOOL m_Horizontal
Definition: rosui.h:542
#define IDS_LANGUAGE_AVAILABLE_TRANSLATION
Definition: resource.h:209
UINT GetItemState(int i, UINT mask)
Definition: rosctrls.h:173
INT WINAPI ImageList_AddIcon(HIMAGELIST himl, HICON hIcon)
Definition: imagelist.c:540
#define WM_RBUTTONUP
Definition: winuser.h:1762
int m_Height
Definition: appview.h:329
CAppsListView * m_ListView
Definition: appview.h:344
#define ID_CHECK_ALL
Definition: resource.h:85
#define DEFAULT_GUI_FONT
Definition: wingdi.h:908
pASYNCINET AsyncInetDownload(LPCWSTR lpszAgent, DWORD dwAccessType, LPCWSTR lpszProxy, LPCWSTR lpszProxyBypass, LPCWSTR lpszUrl, BOOL bAllowCache, ASYNCINET_CALLBACK Callback, VOID *Extension)
Definition: asyncinet.cpp:33
#define WM_PAINT
Definition: winuser.h:1602
BOOL CreateToolbar()
Definition: appview.cpp:1636
INT CompareFunc(LPARAM lParam1, LPARAM lParam2, INT iSubItem)
Definition: appview.cpp:1232
#define IDI_MODIFY
Definition: resource.h:9
BOOL AsyncInetCancel(pASYNCINET AsyncInet)
Definition: asyncinet.cpp:126
static const WCHAR IconIndex[]
Definition: install.c:52
#define STATEIMAGE_CHECKED
Definition: appview.h:66
APPLICATION_VIEW_TYPE ApplicationViewType
Definition: appview.h:222
VOID SetWelcomeText()
Definition: appview.cpp:1077
#define FILE_ATTRIBUTE_NORMAL
Definition: compat.h:137
int InsertItem(const LV_ITEM *pitem)
Definition: rosctrls.h:96
WCHAR szInstallBtn[MAX_STR_LEN]
Definition: appview.h:275
static const WCHAR L[]
Definition: oid.c:1250
#define IDS_TOOLTIP_UNINSTALL
Definition: resource.h:129
HWND WINAPI CreateWindowExW(_In_ DWORD dwExStyle, _In_opt_ LPCWSTR lpClassName, _In_opt_ LPCWSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
#define LVS_EX_CHECKBOXES
Definition: commctrl.h:2727
HDC hdc
Definition: main.c:9
#define CFE_ITALIC
Definition: richedit.h:407
#define IDI_MAIN
Definition: resource.h:4
#define SB_SETTEXT
Definition: commctrl.h:1945
#define COLOR_BTNFACE
Definition: winuser.h:918
ATL::CStringW TempImagePath
Definition: appview.h:135
VOID OnSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
Definition: appview.cpp:1702
const DOCKBAR PVOID HWND hParent
Definition: tooldock.h:22
VOID HideButtonCaption()
Definition: appview.cpp:162
#define ILC_MASK
Definition: commctrl.h:347
#define DI_NORMAL
Definition: wingdi.h:72
static ATL::CWndClassInfo & GetWndClassInfo()
Definition: appview.cpp:1894
static LRESULT CALLBACK StartWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: atlwin.h:1554
VOID InsertText(LPCWSTR lpszText, DWORD dwEffects)
Definition: crichedit.h:72
HWND m_hWnd
Definition: atlwin.h:268
#define LVSIL_NORMAL
Definition: commctrl.h:2294
HWND Create(HWND hwndParent)
Definition: crichedit.h:95
#define IDS_LICENSE_FREEWARE
Definition: resource.h:205
#define CB_SETCURSEL
Definition: winuser.h:1943
#define ID
Definition: ruserpass.c:36
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)
#define CFM_LINK
Definition: richedit.h:337
#define WM_COMMAND
Definition: winuser.h:1722
ATL::CStringW m_szName
Definition: available.h:46
BOOL FindItem(int iStart, const LV_FINDINFO *plvfi)
Definition: rosctrls.h:116
HWND hwndFrom
Definition: winuser.h:3132
#define IDI_EXIT
Definition: resource.h:5
UINT GetWidth()
#define IDS_INFO_UNINSTALLSTR
Definition: resource.h:156
CUiAlignment m_VerticalAlignment
Definition: rosui.h:243
#define LV_VIEW_TILE
Definition: commctrl.h:2840
int LoadingAnimationFrame
Definition: appview.h:131
#define IDS_AINFO_SIZE
Definition: resource.h:163
#define ID_EXIT
Definition: resource.h:10
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
VOID CopyTextToClipboard(LPCWSTR lpszText)
Definition: misc.cpp:50
#define BROKENIMG_ICON_SIZE
Definition: appview.h:26
int ReleaseDC(HDC hDC)
Definition: atlwin.h:1009
#define PATCOPY
Definition: wingdi.h:334
#define IDS_LICENSE_TRIAL
Definition: resource.h:206
#define IDS_LANGUAGE_AVAILABLE_PLACEHOLDER
Definition: resource.h:214
BOOL DisplayImage(LPCWSTR lpszLocation)
Definition: appview.cpp:798
int WINAPI PathParseIconLocationW(LPWSTR lpszPath)
Definition: path.c:1087
#define IDS_AINFO_URLDOWNLOAD
Definition: resource.h:166
#define IDS_INFO_UPDATEINFO
Definition: resource.h:151
#define GWL_STYLE
Definition: winuser.h:846
bool IsEmpty() const
Definition: atlsimpstr.h:379
HIMAGELIST GetImageList(int iImageList)
Definition: appview.cpp:1221
#define IDS_AINFO_PACKAGE_NAME
Definition: resource.h:172
Status GetLastStatus()
BOOL CreateAppInfoDisplay()
Definition: appview.cpp:1692
INT m_Pos
Definition: rosui.h:541
#define LVCF_FMT
Definition: commctrl.h:2582
#define CREATE_ALWAYS
Definition: disk.h:72
BOOL ProcessWindowMessage(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam, LRESULT &theResult, DWORD dwMapId)
Definition: appview.cpp:474
HINSTANCE hInst
Definition: dxdiag.c:13
HWND Create(HWND hwndParent)
Definition: appview.cpp:1253
static ATOM item
Definition: dde.c:856
#define WS_EX_CLIENTEDGE
Definition: winuser.h:384
VOID AsyncInetRelease(pASYNCINET AsyncInet)
Definition: asyncinet.cpp:184
HIMAGELIST InitImageList()
Definition: appview.cpp:34
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define ERROR_CANCELLED
Definition: winerror.h:726
void SetItemState(int i, UINT state, UINT mask)
Definition: rosctrls.h:178
#define INTERNET_OPEN_TYPE_PRECONFIG
Definition: wininet.h:521
#define NM_DBLCLK
Definition: commctrl.h:131
VOID PreviousDisplayCleanup()
Definition: appview.cpp:767
#define ID_INSTALL
Definition: resource.h:74
BOOL WINAPI DeleteDC(_In_ HDC)
VOID LoadAndInsertText(UINT uStringID, const ATL::CStringW &szText, DWORD StringFlags, DWORD TextFlags)
Definition: appview.cpp:240
CMainWindow * m_MainWindow
Definition: appview.h:347
static float(__cdecl *square_half_float)(float x
#define IDS_LANGUAGE_MORE_PLACEHOLDER
Definition: resource.h:213
#define IDS_TOOLTIP_UPDATE_DB
Definition: resource.h:134
struct tagNMLISTVIEW * LPNMLISTVIEW
HICON hIcon
Definition: msconfig.c:44
BOOL CreateSearchBar()
Definition: appview.cpp:1646
#define LVM_SETVIEW
Definition: commctrl.h:2842
#define NM_RCLICK
Definition: commctrl.h:133
#define IDS_WELCOME_URL
Definition: resource.h:98
HWND Create(HWND hwndParent)
Definition: appview.cpp:1048
#define EN_LINK
Definition: richedit.h:202
#define IDS_INFO_PRODUCTID
Definition: resource.h:149
CUiSplitPanel * m_HSplitter
Definition: appview.h:346
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_LBUTTONUP
Definition: winuser.h:1759
BOOL AddInstalledApplication(CInstalledApplicationInfo *InstAppInfo, LPVOID CallbackParam)
Definition: appview.cpp:1385
#define IDS_TOOLTIP_SETTINGS
Definition: resource.h:131
#define IDI_INSTALL
Definition: resource.h:6
BOOL RetrieveIcon(ATL::CStringW &IconLocation) const
Definition: available.cpp:289
static ATL::CWndClassInfo & GetWndClassInfo()
Definition: appview.cpp:1024
#define IDI_CHECK_ALL
Definition: resource.h:15
#define IDS_INFO_HELPPHONE
Definition: resource.h:146
#define min(a, b)
Definition: monoChain.cc:55
unsigned int UINT
Definition: ndis.h:50
#define NULL
Definition: types.h:112
#define IDR_LINKMENU
Definition: resource.h:69
HWND Create(HWND hwndParent)
Definition: appview.cpp:215
BOOL CreateListView()
Definition: appview.cpp:1682
#define IDS_LANGUAGE_NO_TRANSLATION
Definition: resource.h:210
#define LVN_COLUMNCLICK
Definition: commctrl.h:3135
#define CBN_SELCHANGE
Definition: winuser.h:1961
#define IDS_LANGUAGE_ENGLISH_TRANSLATION
Definition: resource.h:211
#define IDS_APP_NAME
Definition: resource.h:137
#define ID_OPEN_LINK
Definition: resource.h:79
ATL::CStringW szAppsPath
Definition: available.h:32
#define IDS_LICENSE_OPENSOURCE
Definition: resource.h:204
CUiCollection & Children()
Definition: rosui.h:359
_In_ WDFCOLLECTION _In_ WDFOBJECT Item
#define WM_SETFONT
Definition: winuser.h:1632
int ScrnshotDownloadCallback(pASYNCINET AsyncInet, ASYNC_EVENT Event, WPARAM wParam, LPARAM lParam, VOID *Extension)
Definition: appview.cpp:437
#define MAX_STR_LEN
Definition: defines.h:34
#define LV_VIEW_LIST
Definition: commctrl.h:2839
#define GET_Y_LPARAM(lp)
Definition: windowsx.h:275
#define CreateFileW
Definition: compat.h:600
BOOL ShowAvailableAppInfo(CAvailableApplicationInfo *Info)
Definition: appview.cpp:368
CAppRichEdit * RichEdit
Definition: appview.h:186
UINT mask
Definition: commctrl.h:680
#define IDC_ARROW
Definition: winuser.h:682
#define IDS_APP_INST_VERSION
Definition: resource.h:138
CONST void * LPCVOID
Definition: windef.h:191
VOID CheckAll()
Definition: appview.cpp:1290
Status FillEllipse(const Brush *brush, const Rect &rect)
APPLICATION_VIEW_TYPE ApplicationViewType
Definition: appview.h:348
#define LVM_DELETECOLUMN
Definition: commctrl.h:2634
#define LVM_GETHEADER
Definition: commctrl.h:2646
#define SendMessage
Definition: winuser.h:5818
BOOL SearchTextChanged(ATL::CStringW &SearchText)
Definition: gui.cpp:812
#define LVIF_PARAM
Definition: commctrl.h:2307
BOOL ShowAvailableAppInfo(CAvailableApplicationInfo *Info)
Definition: appview.cpp:1055
#define TBSTATE_ENABLED
Definition: commctrl.h:970
#define WM_CREATE
Definition: winuser.h:1590
HINSTANCE WINAPI ShellExecuteW(HWND hwnd, LPCWSTR lpVerb, LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd)
Definition: shlexec.cpp:2274
HMENU WINAPI LoadMenuW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
#define IDS_INFO_MODIFYPATH
Definition: resource.h:157
#define HIWORD(l)
Definition: typedefs.h:247
#define IDS_INFO_INSTLOCATION
Definition: resource.h:154
#define WM_RAPPS_RESIZE_CHILDREN
Definition: appview.h:42
#define TBSTYLE_EX_MIXEDBUTTONS
Definition: commctrl.h:1008
int GetRequestedWidth(int Height)
Definition: appview.cpp:858
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
Definition: cursoricon.c:2044
LONG bottom
Definition: windef.h:309
HIMAGELIST SetImageList(HIMAGELIST himl, int iImageList)
Definition: rosctrls.h:91
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
#define LoadImage
Definition: winuser.h:5790
#define LVS_NOSORTHEADER
Definition: commctrl.h:2281
VOID ShowPopupMenuEx(HWND hwnd, HWND hwndOwner, UINT MenuID, UINT DefaultItem)
Definition: misc.cpp:76
HICON hBrokenImgIcon
Definition: appview.h:129
static HBITMAP
Definition: button.c:44
#define IDS_INFO_HELPLINK
Definition: resource.h:145
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
WNDCLASSEXA WNDCLASSEX
Definition: winuser.h:5694
_STLP_DECLSPEC complex< float > _STLP_CALL sin(const complex< float > &)
CWindow GetParent() const
Definition: atlwin.h:654
CMainToolbar * m_Toolbar
Definition: appview.h:341
#define GetWindowLongPtr
Definition: treelist.c:73
LPARAM lParam
Definition: commctrl.h:3036
#define WM_ERASEBKGND
Definition: winuser.h:1607
#define MF_GRAYED
Definition: winuser.h:129
#define Header_SetItem(hwndHD, i, phdi)
Definition: commctrl.h:754
int Compare(_In_z_ PCXSTR psz) const
Definition: cstringt.h:653
#define IDS_INFO_REGOWNER
Definition: resource.h:148
APPLICATION_VIEW_TYPE
Definition: appview.h:70
WCHAR * LPWSTR
Definition: xmlstorage.h:184
float REAL
Definition: types.h:41
#define LVIF_STATE
Definition: commctrl.h:2308
_Check_return_ _CRTIMP double __cdecl floor(_In_ double x)
LONG_PTR LRESULT
Definition: windef.h:209
CUiMargin m_Margin
Definition: rosui.h:240
#define SCRNSHOT_MAX_ASPECT_RAT
Definition: appview.h:29
Arabic default style
Definition: afstyles.h:93
#define EM_GETSELTEXT
Definition: richedit.h:95
WCHAR szUninstallBtn[MAX_STR_LEN]
Definition: appview.h:276
#define ES_LEFT
Definition: pedump.c:664
#define WS_VISIBLE
Definition: pedump.c:620
HBRUSH WINAPI GetSysColorBrush(_In_ int)
#define IDS_AINFO_DESCRIPTION
Definition: resource.h:162
VOID SetText(LPCWSTR lpszText, DWORD dwEffects)
Definition: crichedit.h:84
#define memset(x, y, z)
Definition: compat.h:39
#define IDI_REFRESH
Definition: resource.h:10
HMENU WINAPI GetMenu(_In_ HWND)
VOID SetText(LPCWSTR lpszText)
Definition: appview.cpp:187
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
#define IDI_BROKEN_IMAGE
Definition: resource.h:17
#define IDI_SETTINGS
Definition: resource.h:8
virtual DWORD_PTR CountSizableChildren()
Definition: rosui.h:407
#define TBSTYLE_LIST
Definition: commctrl.h:989
static HBITMAP hBitmap
Definition: timezone.c:26
LPARAM lParam
Definition: combotst.c:139
virtual HDWP OnParentSize(RECT parentRect, HDWP hDwp)
Definition: rosui.h:481
#define SBT_NOBORDERS
Definition: commctrl.h:1967
#define ES_AUTOHSCROLL
Definition: pedump.c:672
#define LOWORD(l)
Definition: pedump.c:82
#define ID_MODIFY
Definition: resource.h:78
_Inout_opt_ PUNICODE_STRING Extension
Definition: fltkernel.h:1092
INT CheckedItemCount
Definition: appview.h:217
#define LOADING_ANIMATION_FPS
Definition: appview.h:55
#define HeapFree(x, y, z)
Definition: compat.h:594
PVOID GetFocusedItemData()
Definition: appview.cpp:2005
HDC GetDC()
Definition: atlwin.h:513
#define SRCCOPY
Definition: wingdi.h:332
int fmt
Definition: commctrl.h:685
#define TBSTYLE_FLAT
Definition: commctrl.h:988
CAppInfoDisplay * m_AppsInfo
Definition: appview.h:345
#define LVIS_FOCUSED
Definition: commctrl.h:2314
#define TB_SETEXTENDEDSTYLE
Definition: commctrl.h:1186
HDC hdcMem
Definition: welcome.c:104
VOID InsertTextWithString(UINT StringID, DWORD StringFlags, const ATL::CStringW &Text, DWORD TextFlags)
Definition: appview.cpp:386
CUiWindow< CComboBox > * m_ComboBox
Definition: appview.h:342
#define WM_NOTIFY
Definition: richedit.h:61
static VOID NTAPI BitBlt(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Width, _In_ ULONG Height, _In_reads_bytes_(Delta *Height) PUCHAR Buffer, _In_ ULONG BitsPerPixel, _In_ ULONG Delta)
Definition: common.c:49
BOOL SortItems(PFNLVCOMPARE pfnCompare, PVOID lParam)
Definition: rosctrls.h:141
BOOL IsWindowVisible() const
Definition: atlwin.h:893
#define IDS_INFO_INFOABOUT
Definition: resource.h:152
#define IDS_TOOLTIP_INSTALL
Definition: resource.h:128
VOID SetCheckboxesVisible(BOOL bIsVisible)
Definition: appview.cpp:1122
char * Text
Definition: combotst.c:136
BOOL ItemCheckStateChanged(BOOL bChecked, LPVOID CallbackParam)
Definition: gui.cpp:751
VOID OnCommand(WPARAM wParam, LPARAM lParam)
Definition: appview.cpp:1084
CUiPanel * m_Panel
Definition: appview.h:340
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 ACPI_STATUS const char * Format
Definition: acpixf.h:1216
#define EN_CHANGE
Definition: winuser.h:2004