ReactOS  0.4.15-dev-2996-gf777e6b
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 {
1118 }
1119 
1121 {
1122  if (m_hImageListView)
1123  {
1125  }
1126 }
1127 
1129 {
1130  if (bIsVisible)
1131  {
1133  }
1134  else
1135  {
1137  }
1138 
1139  bHasCheckboxes = bIsVisible;
1140 }
1141 
1143 {
1144  HWND hHeader;
1145  HDITEMW hColumn;
1146  INT nHeaderID = pnmv->iSubItem;
1147 
1149  return;
1150 
1151  hHeader = (HWND)SendMessage(LVM_GETHEADER, 0, 0);
1152  ZeroMemory(&hColumn, sizeof(hColumn));
1153 
1154  /* If the sorting column changed, remove the sorting style from the old column */
1155  if ((nLastHeaderID != -1) && (nLastHeaderID != nHeaderID))
1156  {
1157  bIsAscending = TRUE; // also reset sorting method to ascending
1158  hColumn.mask = HDI_FORMAT;
1159  Header_GetItem(hHeader, nLastHeaderID, &hColumn);
1160  hColumn.fmt &= ~(HDF_SORTUP | HDF_SORTDOWN);
1161  Header_SetItem(hHeader, nLastHeaderID, &hColumn);
1162  }
1163 
1164  /* Set the sorting style to the new column */
1165  hColumn.mask = HDI_FORMAT;
1166  Header_GetItem(hHeader, nHeaderID, &hColumn);
1167 
1168  hColumn.fmt &= ~(HDF_SORTDOWN | HDF_SORTUP);
1169  hColumn.fmt |= (bIsAscending ? HDF_SORTUP : HDF_SORTDOWN);
1170  Header_SetItem(hHeader, nHeaderID, &hColumn);
1171 
1172  /* Sort the list, using the current values of nHeaderID and bIsAscending */
1173  SortContext ctx = { this, nHeaderID };
1175 
1176  /* Save new values */
1177  nLastHeaderID = nHeaderID;
1179 }
1180 
1182 {
1183  return AddColumn(Index, const_cast<LPWSTR>(Text.GetString()), Width, Format);
1184 }
1185 
1187 {
1188  LVCOLUMNW Column;
1189 
1190  ZeroMemory(&Column, sizeof(Column));
1191 
1193  Column.iSubItem = Index;
1194  Column.pszText = lpText;
1195  Column.cx = Width;
1196  Column.fmt = Format;
1197 
1198  return SendMessage(LVM_INSERTCOLUMN, Index, (LPARAM)(&Column));
1199 }
1200 
1202 {
1204  return;
1205 }
1206 
1208 {
1209  LVITEMW Item;
1210 
1211  ZeroMemory(&Item, sizeof(Item));
1212 
1213  Item.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE;
1214  Item.pszText = const_cast<LPWSTR>(lpText);
1215  Item.lParam = lParam;
1216  Item.iItem = ItemIndex;
1217  Item.iImage = IconIndex;
1218 
1219  if (IconIndex >= 0)
1220  {
1221  Item.iImage = IconIndex;
1222  Item.mask |= LVIF_IMAGE;
1223  }
1224  return InsertItem(&Item);
1225 }
1226 
1228 {
1229  return (HIMAGELIST)SendMessage(LVM_GETIMAGELIST, iImageList, 0);
1230 }
1231 
1233 {
1234  SortContext *ctx = ((SortContext *)lParamSort);
1235  return ctx->lvw->CompareFunc(lParam1, lParam2, ctx->iSubItem);
1236 }
1237 
1238 INT CAppsListView::CompareFunc(LPARAM lParam1, LPARAM lParam2, INT iSubItem)
1239 {
1240  ATL::CStringW Item1, Item2;
1241  LVFINDINFOW IndexInfo;
1242  INT Index;
1243 
1244  IndexInfo.flags = LVFI_PARAM;
1245 
1246  IndexInfo.lParam = lParam1;
1247  Index = FindItem(-1, &IndexInfo);
1248  GetItemText(Index, iSubItem, Item1.GetBuffer(MAX_STR_LEN), MAX_STR_LEN);
1249  Item1.ReleaseBuffer();
1250 
1251  IndexInfo.lParam = lParam2;
1252  Index = FindItem(-1, &IndexInfo);
1253  GetItemText(Index, iSubItem, Item2.GetBuffer(MAX_STR_LEN), MAX_STR_LEN);
1254  Item2.ReleaseBuffer();
1255 
1256  return bIsAscending ? Item1.Compare(Item2) : Item2.Compare(Item1);
1257 }
1258 
1260 {
1261  RECT r = { 205, 28, 465, 250 };
1263 
1265 
1266  if (hwnd)
1267  {
1269  }
1270 
1274  0, 1);
1275 
1276  // currently, this two Imagelist is the same one.
1279 
1280  return hwnd;
1281 }
1282 
1284 {
1285  return (BOOL)(GetItemState(item, LVIS_STATEIMAGEMASK) >> 12) - 1;
1286 }
1287 
1289 {
1290  if (bHasCheckboxes)
1291  {
1293  }
1294 }
1295 
1297 {
1298  if (bHasCheckboxes)
1299  {
1300  if (CheckedItemCount == ItemCount)
1301  {
1302  // clear all
1303  SetCheckState(-1, FALSE);
1304  }
1305  else
1306  {
1307  // check all
1308  SetCheckState(-1, TRUE);
1309  }
1310  }
1311 }
1312 
1314 {
1316  if (item == -1)
1317  {
1318  return (PVOID)0;
1319  }
1320  return (PVOID)GetItemData(item);
1321 }
1322 
1324 {
1325  if (!DeleteAllItems()) return FALSE;
1326  ApplicationViewType = AppType;
1327 
1328  bIsAscending = TRUE;
1329 
1330  ItemCount = 0;
1331  CheckedItemCount = 0;
1332 
1333  // delete old columns
1334  while (ColumnCount)
1335  {
1337  }
1338 
1340 
1341  // add new columns
1343  switch (AppType)
1344  {
1346 
1347  /* Add columns to ListView */
1348  szText.LoadStringW(IDS_APP_NAME);
1350 
1351  szText.LoadStringW(IDS_APP_INST_VERSION);
1353 
1354  szText.LoadStringW(IDS_APP_DESCRIPTION);
1356 
1357  // disable checkboxes
1359  break;
1360 
1362 
1363  /* Add columns to ListView */
1364  szText.LoadStringW(IDS_APP_NAME);
1366 
1367  szText.LoadStringW(IDS_APP_INST_VERSION);
1369 
1370  szText.LoadStringW(IDS_APP_DESCRIPTION);
1372 
1373  // enable checkboxes
1375  break;
1376 
1377  case AppViewTypeEmpty:
1378  default:
1379  break;
1380  }
1381 
1382 
1383  return TRUE;
1384 }
1385 
1387 {
1388  return SendMessage(LVM_SETVIEW, (WPARAM)ViewMode, 0) == 1;
1389 }
1390 
1392 {
1394  {
1395  return FALSE;
1396  }
1397 
1398  /* Load icon from registry */
1399  HICON hIcon = NULL;
1400  ATL::CStringW szIconPath;
1401  if (InstAppInfo->RetrieveIcon(szIconPath))
1402  {
1403  PathParseIconLocationW((LPWSTR)szIconPath.GetString());
1404 
1405  /* Load only the 1st icon from the application executable,
1406  * because all apps provide the executables which have the main icon
1407  * as 1st in the index , so we don't need other icons here */
1409  szIconPath.GetString(),
1410  0);
1411  }
1412 
1413  if (!hIcon)
1414  {
1415  /* Load default icon */
1417  }
1418 
1420  DestroyIcon(hIcon);
1421 
1422  int Index = AddItem(ItemCount, IconIndex, InstAppInfo->szDisplayName, (LPARAM)CallbackParam);
1423  SetItemText(Index, 1, InstAppInfo->szDisplayVersion.IsEmpty() ? L"---" : InstAppInfo->szDisplayVersion);
1424  SetItemText(Index, 2, InstAppInfo->szComments.IsEmpty() ? L"---" : InstAppInfo->szComments);
1425 
1426  ItemCount++;
1427  return TRUE;
1428 }
1429 
1431 {
1433  {
1434  return FALSE;
1435  }
1436 
1437  /* Load icon from file */
1438  HICON hIcon = NULL;
1439  ATL::CStringW szIconPath;
1440  if (AvlbAppInfo->RetrieveIcon(szIconPath))
1441  {
1443  szIconPath.GetString(),
1444  IMAGE_ICON,
1447  LR_LOADFROMFILE);
1448  }
1449 
1450  if (!hIcon || GetLastError() != ERROR_SUCCESS)
1451  {
1452  /* Load default icon */
1454  }
1455 
1457  DestroyIcon(hIcon);
1458 
1459  int Index = AddItem(ItemCount, IconIndex, AvlbAppInfo->m_szName, (LPARAM)CallbackParam);
1460 
1461  if (InitCheckState)
1462  {
1464  }
1465 
1466  SetItemText(Index, 1, AvlbAppInfo->m_szVersion);
1467  SetItemText(Index, 2, AvlbAppInfo->m_szDesc);
1468 
1469  ItemCount++;
1470  return TRUE;
1471 }
1472 
1473 // this function is called when parent window receiving an notification about checkstate changing
1475 {
1476  if (bCheck)
1477  {
1478  CheckedItemCount++;
1479  }
1480  else
1481  {
1482  CheckedItemCount--;
1483  }
1484 }
1485 // **** CAppsListView ****
1486 
1487 
1488 // **** CApplicationView ****
1489 
1491 {
1492  theResult = 0;
1493  switch (message)
1494  {
1495  case WM_CREATE:
1496  {
1497  BOOL bSuccess = TRUE;
1498  m_Panel = new CUiPanel();
1501 
1502  bSuccess &= CreateToolbar();
1504  bSuccess &= CreateComboBox();
1506  bSuccess &= CreateListView();
1508 
1509  m_Toolbar->AutoSize();
1510 
1511  RECT rTop;
1512 
1513  ::GetWindowRect(m_Toolbar->m_hWnd, &rTop);
1514  m_HSplitter->m_Margin.top = rTop.bottom - rTop.top;
1515  if (!bSuccess)
1516  {
1517  return -1; // creation failure
1518  }
1519  }
1520  break;
1521 
1522  case WM_NOTIFY:
1523  {
1524  LPNMHDR pNotifyHeader = (LPNMHDR)lParam;
1525  if (pNotifyHeader->hwndFrom == m_ListView->GetWindow())
1526  {
1527  switch (pNotifyHeader->code)
1528  {
1529  case LVN_ITEMCHANGED:
1530  {
1532 
1533  /* Check if this is a valid item
1534  * (technically, it can be also an unselect) */
1535  INT ItemIndex = pnic->iItem;
1536  if (ItemIndex == -1 ||
1537  ItemIndex >= ListView_GetItemCount(pnic->hdr.hwndFrom))
1538  {
1539  break;
1540  }
1541 
1542  /* Check if the focus has been moved to another item */
1543  if ((pnic->uChanged & LVIF_STATE) &&
1544  (pnic->uNewState & LVIS_FOCUSED) &&
1545  !(pnic->uOldState & LVIS_FOCUSED))
1546  {
1547  ItemGetFocus((LPVOID)pnic->lParam);
1548  }
1549 
1550  /* Check if the item is checked/unchecked */
1551  if (pnic->uChanged & LVIF_STATE)
1552  {
1553  int iOldState = STATEIMAGETOINDEX(pnic->uOldState);
1554  int iNewState = STATEIMAGETOINDEX(pnic->uNewState);
1555 
1556  if (iOldState == STATEIMAGE_UNCHECKED && iNewState == STATEIMAGE_CHECKED)
1557  {
1558  // this item is just checked
1561  }
1562  else if (iOldState == STATEIMAGE_CHECKED && iNewState == STATEIMAGE_UNCHECKED)
1563  {
1564  // this item is just unchecked
1567  }
1568  }
1569  }
1570  break;
1571 
1572  case LVN_COLUMNCLICK:
1573  {
1575 
1576  m_ListView->ColumnClick(pnmv);
1577  }
1578  break;
1579 
1580  case NM_DBLCLK:
1581  {
1583  if (Item->iItem != -1)
1584  {
1585  /* this won't do anything if the program is already installed */
1586 
1588  {
1590  }
1591  }
1592  }
1593  break;
1594 
1595  case NM_RCLICK:
1596  {
1597  if (((LPNMLISTVIEW)lParam)->iItem != -1)
1598  {
1599  ShowPopupMenuEx(m_hWnd, m_hWnd, 0, ID_INSTALL);
1600  }
1601  }
1602  break;
1603  }
1604  }
1605  else if (pNotifyHeader->hwndFrom == m_Toolbar->GetWindow())
1606  {
1607  switch (pNotifyHeader->code)
1608  {
1609  case TTN_GETDISPINFO:
1611  break;
1612  }
1613  }
1614  }
1615  break;
1616 
1617  case WM_SYSCOLORCHANGE:
1618  {
1619  /* Forward WM_SYSCOLORCHANGE to common controls */
1620  m_ListView->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1622  m_Toolbar->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1623  m_ComboBox->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1624  }
1625  break;
1626 
1627  case WM_SIZE:
1628  {
1629  OnSize(hwnd, wParam, lParam);
1630  break;
1631  }
1632 
1633  case WM_COMMAND:
1634  {
1636  }
1637  break;
1638  }
1639  return FALSE;
1640 }
1641 
1643 {
1644  m_Toolbar = new CMainToolbar();
1648 
1649  return m_Toolbar->Create(m_hWnd) != NULL;
1650 }
1651 
1653 {
1657  m_SearchBar->m_Margin.top = 4;
1659 
1660  return m_SearchBar->Create(m_Toolbar->m_hWnd) != NULL;
1661 }
1662 
1664 {
1668  m_ComboBox->m_Margin.top = 4;
1669 
1670  return m_ComboBox->Create(m_Toolbar->m_hWnd) != NULL;
1671 }
1672 
1674 {
1675  m_HSplitter = new CUiSplitPanel();
1680  m_HSplitter->m_Pos = INT_MAX; //set INT_MAX to use lowest possible position (m_MinSecond)
1681  m_HSplitter->m_MinFirst = 10;
1682  m_HSplitter->m_MinSecond = 140;
1684 
1685  return m_HSplitter->Create(m_hWnd) != NULL;
1686 }
1687 
1689 {
1690  m_ListView = new CAppsListView();
1694 
1695  return m_ListView->Create(m_hWnd) != NULL;
1696 }
1697 
1699 {
1700  m_AppsInfo = new CAppInfoDisplay();
1704 
1705  return m_AppsInfo->Create(m_hWnd) != NULL;
1706 }
1707 
1709 {
1710  if (wParam == SIZE_MINIMIZED)
1711  return;
1712 
1713  /* Size tool bar */
1714  m_Toolbar->AutoSize();
1715 
1716  /* Automatically hide captions */
1717  DWORD dToolbarTreshold = m_Toolbar->GetMaxButtonsWidth();
1718  DWORD dSearchbarMargin = (LOWORD(lParam) - m_SearchBar->m_Width - m_ComboBox->m_Width - TOOLBAR_PADDING * 2);
1719 
1720  if (dSearchbarMargin > dToolbarTreshold)
1721  {
1723  }
1724  else if (dSearchbarMargin < dToolbarTreshold)
1725  {
1727 
1728  }
1729 
1730  RECT r = { 0, 0, LOWORD(lParam), HIWORD(lParam) };
1731  HDWP hdwp = NULL;
1733 
1734  hdwp = BeginDeferWindowPos(count);
1735  if (hdwp)
1736  {
1737  hdwp = m_Panel->OnParentSize(r, hdwp);
1738  if (hdwp)
1739  {
1740  EndDeferWindowPos(hdwp);
1741  }
1742  }
1743 
1745  hdwp = BeginDeferWindowPos(count);
1746  if (hdwp)
1747  {
1748  hdwp = m_SearchBar->OnParentSize(r, hdwp);
1749  if (hdwp)
1750  {
1751  EndDeferWindowPos(hdwp);
1752  }
1753  }
1754 
1757  hdwp = BeginDeferWindowPos(count);
1758  if (hdwp)
1759  {
1760  hdwp = m_ComboBox->OnParentSize(r, hdwp);
1761  if (hdwp)
1762  {
1763  EndDeferWindowPos(hdwp);
1764  }
1765  }
1766 }
1767 
1769 {
1770  if (lParam)
1771  {
1772  if ((HWND)lParam == m_SearchBar->GetWindow())
1773  {
1774  ATL::CStringW szBuf;
1775  switch (HIWORD(wParam))
1776  {
1777  case EN_SETFOCUS:
1778  {
1779  ATL::CStringW szWndText;
1780 
1781  szBuf.LoadStringW(IDS_SEARCH_TEXT);
1782  m_SearchBar->GetWindowTextW(szWndText);
1783  if (szBuf == szWndText)
1784  {
1785  m_SearchBar->SetWindowTextW(L"");
1786  }
1787  }
1788  break;
1789 
1790  case EN_KILLFOCUS:
1791  {
1792  m_SearchBar->GetWindowTextW(szBuf);
1793  if (szBuf.IsEmpty())
1794  {
1795  szBuf.LoadStringW(IDS_SEARCH_TEXT);
1796  m_SearchBar->SetWindowTextW(szBuf.GetString());
1797  }
1798  }
1799  break;
1800 
1801  case EN_CHANGE:
1802  {
1803  ATL::CStringW szWndText;
1804 
1805  szBuf.LoadStringW(IDS_SEARCH_TEXT);
1806  m_SearchBar->GetWindowTextW(szWndText);
1807  if (szBuf == szWndText)
1808  {
1809  szWndText = L"";
1810  m_MainWindow->SearchTextChanged(szWndText);
1811  }
1812  else
1813  {
1814  m_MainWindow->SearchTextChanged(szWndText);
1815  }
1816  }
1817  break;
1818  }
1819 
1820  return;
1821  }
1822  else if ((HWND)lParam == m_ComboBox->GetWindow())
1823  {
1824  int NotifyCode = HIWORD(wParam);
1825  switch (NotifyCode)
1826  {
1827  case CBN_SELCHANGE:
1828  int CurrSelection = m_ComboBox->SendMessageW(CB_GETCURSEL);
1829 
1830  int ViewModeList[] = { LV_VIEW_DETAILS, LV_VIEW_LIST, LV_VIEW_TILE };
1831  ATLASSERT(CurrSelection < (int)_countof(ViewModeList));
1832  if (!m_ListView->SetViewMode(ViewModeList[CurrSelection]))
1833  {
1834  MessageBoxW(L"View mode invalid or unimplemented");
1835  }
1836  break;
1837  }
1838 
1839  return;
1840  }
1841  else if ((HWND)lParam == m_Toolbar->GetWindow())
1842  {
1843  // the message is sent from Toolbar. fall down to continue process
1844  }
1845  else
1846  {
1847  return;
1848  }
1849  }
1850 
1851  // the LOWORD of wParam contains a Menu or Control ID
1852  WORD wCommand = LOWORD(wParam);
1853 
1854  switch (wCommand)
1855  {
1856  case ID_INSTALL:
1858  break;
1859 
1860  case ID_TOOLBAR_INSTALL:
1861  m_MainWindow->SendMessageW(WM_COMMAND, ID_INSTALL, 0);
1862  break;
1863 
1864  case ID_UNINSTALL:
1865  m_MainWindow->SendMessageW(WM_COMMAND, ID_UNINSTALL, 0);
1866  break;
1867 
1868  case ID_MODIFY:
1869  m_MainWindow->SendMessageW(WM_COMMAND, ID_MODIFY, 0);
1870  break;
1871 
1872  case ID_REGREMOVE:
1873  m_MainWindow->SendMessageW(WM_COMMAND, ID_REGREMOVE, 0);
1874  break;
1875 
1876  case ID_REFRESH:
1877  m_MainWindow->SendMessageW(WM_COMMAND, ID_REFRESH, 0);
1878  break;
1879 
1880  case ID_RESETDB:
1881  m_MainWindow->SendMessageW(WM_COMMAND, ID_RESETDB, 0);
1882  break;
1883  }
1884 }
1885 
1887  : m_MainWindow(MainWindow)
1888 {
1889 }
1890 
1892 {
1893  delete m_Toolbar;
1894  delete m_SearchBar;
1895  delete m_ListView;
1896  delete m_AppsInfo;
1897  delete m_HSplitter;
1898 }
1899 
1901 {
1902  DWORD csStyle = CS_VREDRAW | CS_HREDRAW;
1903  static ATL::CWndClassInfo wc =
1904  {
1905  {
1906  sizeof(WNDCLASSEX),
1907  csStyle,
1908  StartWindowProc,
1909  0,
1910  0,
1911  NULL,
1912  NULL,
1913  NULL,
1914  (HBRUSH)(COLOR_BTNFACE + 1),
1915  NULL,
1916  L"RAppsApplicationView",
1917  NULL
1918  },
1919  NULL, NULL, IDC_ARROW, TRUE, 0, _T("")
1920  };
1921  return wc;
1922 }
1923 
1925 {
1926  RECT r = { 0,0,0,0 };
1927 
1929 
1931 }
1932 
1934 {
1935  if (!m_ListView->SetDisplayAppType(AppType))
1936  {
1937  return FALSE;
1938  }
1939  ApplicationViewType = AppType;
1941 
1942  HMENU hMenu = ::GetMenu(m_hWnd);
1943  switch (AppType)
1944  {
1945  case AppViewTypeEmpty:
1946  default:
1951 
1952  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_REGREMOVE, TRUE);
1953  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, FALSE);
1954  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_UNINSTALL, TRUE);
1955  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, TRUE);
1956  break;
1957 
1963 
1964  // TODO: instead of disable these button, I would rather remove them.
1965  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_REGREMOVE, TRUE);
1966  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, FALSE);
1967  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_UNINSTALL, TRUE);
1968  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, TRUE);
1969  break;
1970 
1976 
1977  // TODO: instead of disable these button, I would rather remove them.
1978  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_REGREMOVE, FALSE);
1979  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, TRUE);
1980  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_UNINSTALL, FALSE);
1981  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, FALSE);
1982  break;
1983  }
1984  return TRUE;
1985 }
1986 
1988 {
1990  {
1991  return FALSE;
1992  }
1993  return m_ListView->AddInstalledApplication(InstAppInfo, param);
1994 }
1995 
1997 {
1999  {
2000  return FALSE;
2001  }
2002  return m_ListView->AddAvailableApplication(AvlbAppInfo, InitCheckState, param);
2003 }
2004 
2006 {
2007  m_ListView->CheckAll();
2008  return;
2009 }
2010 
2012 {
2013  return m_ListView->GetFocusedItemData();
2014 }
2015 
2017 {
2018  return m_ListView->GetItemCount();
2019 }
2020 
2022 {
2023  m_Toolbar->AppendTabOrderWindow(Direction, TabOrderList);
2024  m_ComboBox->AppendTabOrderWindow(Direction, TabOrderList);
2025  m_SearchBar->AppendTabOrderWindow(Direction, TabOrderList);
2026  m_ListView->AppendTabOrderWindow(Direction, TabOrderList);
2027  m_AppsInfo->AppendTabOrderWindow(Direction, TabOrderList);
2028 
2029  return;
2030 }
2031 
2032 // this function is called when a item of listview get focus.
2033 // CallbackParam is the param passed to listview when adding the item (the one getting focus now).
2035 {
2036  switch (ApplicationViewType)
2037  {
2039  return m_AppsInfo->ShowInstalledAppInfo((CInstalledApplicationInfo *)CallbackParam);
2040 
2042  return m_AppsInfo->ShowAvailableAppInfo((CAvailableApplicationInfo *)CallbackParam);
2043 
2044  case AppViewTypeEmpty:
2045  default:
2047  return FALSE;
2048  }
2049 }
2050 
2051 // this function is called when a item of listview is checked/unchecked
2052 // CallbackParam is the param passed to listview when adding the item (the one getting focus now).
2054 {
2055  m_MainWindow->ItemCheckStateChanged(bChecked, CallbackParam);
2056  return TRUE;
2057 }
2058 // **** 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:1430
#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:1722
int m_Width
Definition: appview.h:329
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:323
#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:1996
#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:2587
static Bitmap * FromFile(const WCHAR *filename, BOOL useEmbeddedColorManagement)
#define LVSIL_SMALL
Definition: commctrl.h:2299
#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:1987
#define ERROR_SUCCESS
Definition: deptool.c:10
UINT uNewState
Definition: commctrl.h:3036
#define INT_MAX
Definition: limits.h:40
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
#define TBSTYLE_EX_HIDECLIPPEDBUTTONS
Definition: commctrl.h:1013
CUiWindow< CSearchBar > * m_SearchBar
Definition: appview.h:344
BOOL CreateComboBox()
Definition: appview.cpp:1663
#define ID_REGREMOVE
Definition: resource.h:83
#define IDS_LANGUAGE_SINGLE
Definition: resource.h:212
#define LVCF_TEXT
Definition: commctrl.h:2588
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:2295
#define IDS_AINFO_AVAILABLEVERSION
Definition: resource.h:167
#define LVS_SHOWSELALWAYS
Definition: commctrl.h:2267
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:1474
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
#define LISTVIEW_ICON_SIZE
Definition: appview.h:23
#define LR_LOADFROMFILE
Definition: winuser.h:1082
_In_ BOOLEAN Create
Definition: pstypes.h:527
SCRNSHOT_STATUS ScrnshotPrevStauts
Definition: appview.h:127
#define LVS_REPORT
Definition: commctrl.h:2262
#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:1201
#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:3131
VOID InsertLicenseInfo(CAvailableApplicationInfo *Info)
Definition: appview.cpp:291
#define IDS_AINFO_URLSITE
Definition: resource.h:164
#define LVCFMT_RIGHT
Definition: commctrl.h:2599
INT m_MinFirst
Definition: rosui.h:544
static HDC
Definition: imagelist.c:92
LPARAM lParam
Definition: commctrl.h:2458
#define CALLBACK
Definition: compat.h:35
static ATL::CWndClassInfo & GetWndClassInfo()
Definition: appview.cpp:736
BOOL WINAPI UpdateWindow(_In_ HWND)
PVOID GetFocusedItemData()
Definition: appview.cpp:1313
#define TOOLBARCLASSNAMEW
Definition: commctrl.h:943
BOOL SetViewMode(DWORD ViewMode)
Definition: appview.cpp:1386
#define LVS_EX_FULLROWSELECT
Definition: commctrl.h:2734
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:304
#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:2598
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:1040
#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:753
#define HDF_SORTUP
Definition: commctrl.h:724
#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:1004
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:1490
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:305
DWORD SetButtonStructSize()
Definition: rosctrls.h:286
#define ID_UNINSTALL
Definition: resource.h:75
DWORD m_dButtonsWidthMax
Definition: appview.h:274
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:2021
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 LVS_SHAREIMAGELISTS
Definition: commctrl.h:2270
#define IDR_APPLICATIONMENU
Definition: resource.h:70
struct tagNMHDR * LPNMHDR
#define ImageList_RemoveAll(himl)
Definition: commctrl.h:556
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:2436
BOOL SetDisplayAppType(APPLICATION_VIEW_TYPE AppType)
Definition: appview.cpp:1933
BOOL WINAPI PathIsURLW(LPCWSTR lpstrPath)
Definition: url.c:2432
BOOL WINAPI PathAppendW(LPWSTR lpszPath, LPCWSTR lpszAppend)
Definition: path.c:126
HICON WINAPI ExtractIconW(HINSTANCE hInstance, LPCWSTR lpszFile, UINT nIconIndex)
Definition: shell32_main.c:882
VOID ColumnClick(LPNMLISTVIEW pnmv)
Definition: appview.cpp:1142
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:2309
#define LVCF_SUBITEM
Definition: commctrl.h:2589
_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:2634
VOID OnCommand(WPARAM wParam, LPARAM lParam)
Definition: appview.cpp:1768
UINT code
Definition: winuser.h:3134
#define STATEIMAGETOINDEX(x)
Definition: appview.h:61
HWND Create(HWND hwndParent)
Definition: appview.cpp:1924
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:998
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:273
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:2034
BOOL CreateHSplitter()
Definition: appview.cpp:1673
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:705
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:751
INT AddItem(INT ItemIndex, INT IconIndex, LPCWSTR lpText, LPARAM lParam)
Definition: appview.cpp:1207
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
Definition: delete.c:39
#define TTN_GETDISPINFO
Definition: commctrl.h:1878
#define TB_ENABLEBUTTON
Definition: commctrl.h:1042
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:1283
#define TB_GETEXTENDEDSTYLE
Definition: commctrl.h:1191
#define LVS_SORTASCENDING
Definition: commctrl.h:2268
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:3037
LONG_PTR LPARAM
Definition: windef.h:208
#define LVS_AUTOARRANGE
Definition: commctrl.h:2272
#define CBS_DROPDOWNLIST
Definition: winuser.h:284
#define ListView_GetItemCount(hwnd)
Definition: commctrl.h:2307
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:326
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:2326
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:4718
#define CBS_HASSTRINGS
Definition: winuser.h:285
static INT CALLBACK s_CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
Definition: appview.cpp:1232
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:279
#define IDS_APP_DESCRIPTION
Definition: resource.h:139
WCHAR szModifyBtn[MAX_STR_LEN]
Definition: appview.h:278
virtual VOID AppendTabOrderWindow(int Direction, ATL::CSimpleArray< HWND > &TabOrderList)
Definition: rosui.h:500
BOOL ItemCheckStateChanged(BOOL bChecked, LPVOID CallbackParam)
Definition: appview.cpp:2053
#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:1323
#define LPTOOLTIPTEXT
Definition: commctrl.h:1890
#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:2841
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:999
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:509
VOID SetCheckState(INT item, BOOL fCheck)
Definition: appview.cpp:1288
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:1886
#define MF_ENABLED
Definition: winuser.h:128
#define INDEXTOSTATEIMAGEMASK(i)
Definition: commctrl.h:2328
#define IDS_AINFO_LANGUAGES
Definition: resource.h:168
BOOL AddColumn(INT Index, ATL::CStringW &Text, INT Width, INT Format)
Definition: appview.cpp:1181
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:2310
UINT WINAPI GetTempFileNameW(IN LPCWSTR lpPathName, IN LPCWSTR lpPrefixString, IN UINT uUnique, OUT LPWSTR lpTempFileName)
Definition: filename.c:84
LPWSTR pszText
Definition: commctrl.h:2567
BOOL DisplayFile(LPCWSTR lpszFileName)
Definition: appview.cpp:615
#define LVS_SINGLESEL
Definition: commctrl.h:2266
unsigned short WORD
Definition: ntddk_ex.h:93
#define HDF_SORTDOWN
Definition: commctrl.h:725
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:989
#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:330
CAppsListView * m_ListView
Definition: appview.h:345
#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:1642
INT CompareFunc(LPARAM lParam1, LPARAM lParam2, INT iSubItem)
Definition: appview.cpp:1238
#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:276
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:2731
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:1949
#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:1708
const DOCKBAR PVOID HWND hParent
Definition: tooldock.h:22
VOID HideButtonCaption()
Definition: appview.cpp:162
#define ILC_MASK
Definition: commctrl.h:351
#define DI_NORMAL
Definition: wingdi.h:72
static ATL::CWndClassInfo & GetWndClassInfo()
Definition: appview.cpp:1900
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:2298
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:2844
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:1092
#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:1227
#define IDS_AINFO_PACKAGE_NAME
Definition: resource.h:172
Status GetLastStatus()
BOOL CreateAppInfoDisplay()
Definition: appview.cpp:1698
INT m_Pos
Definition: rosui.h:541
#define LVCF_FMT
Definition: commctrl.h:2586
#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:1259
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)
struct @1599 Msg[]
VOID LoadAndInsertText(UINT uStringID, const ATL::CStringW &szText, DWORD StringFlags, DWORD TextFlags)
Definition: appview.cpp:240
CMainWindow * m_MainWindow
Definition: appview.h:348
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:1652
#define LVM_SETVIEW
Definition: commctrl.h:2846
#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:347
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:1391
#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:1688
#define IDS_LANGUAGE_NO_TRANSLATION
Definition: resource.h:210
#define LVN_COLUMNCLICK
Definition: commctrl.h:3139
#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:2843
#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:684
#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:1296
Status FillEllipse(const Brush *brush, const Rect &rect)
APPLICATION_VIEW_TYPE ApplicationViewType
Definition: appview.h:349
#define LVM_DELETECOLUMN
Definition: commctrl.h:2638
#define LVM_GETHEADER
Definition: commctrl.h:2650
#define SendMessage
Definition: winuser.h:5818
BOOL SearchTextChanged(ATL::CStringW &SearchText)
Definition: gui.cpp:812
#define LVIF_PARAM
Definition: commctrl.h:2311
BOOL ShowAvailableAppInfo(CAvailableApplicationInfo *Info)
Definition: appview.cpp:1055
#define TBSTATE_ENABLED
Definition: commctrl.h:974
#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:1012
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:2285
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:342
#define GetWindowLongPtr
Definition: treelist.c:73
LPARAM lParam
Definition: commctrl.h:3040
#define WM_ERASEBKGND
Definition: winuser.h:1607
#define MF_GRAYED
Definition: winuser.h:129
#define Header_SetItem(hwndHD, i, phdi)
Definition: commctrl.h:758
int Compare(_In_z_ PCXSTR psz) const
Definition: cstringt.h:690
#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:2312
_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:277
#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:993
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:1971
#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:2011
HDC GetDC()
Definition: atlwin.h:513
#define SRCCOPY
Definition: wingdi.h:332
int fmt
Definition: commctrl.h:689
#define TBSTYLE_FLAT
Definition: commctrl.h:992
CAppInfoDisplay * m_AppsInfo
Definition: appview.h:346
#define LVIS_FOCUSED
Definition: commctrl.h:2318
#define TB_SETEXTENDEDSTYLE
Definition: commctrl.h:1190
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:343
#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:1128
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:341
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