ReactOS  0.4.15-dev-1201-gb2cf5a4
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 
993  UpdateWindow();
994 }
995 
997 {
998  switch (Link->msg)
999  {
1000  case WM_LBUTTONUP:
1001  case WM_RBUTTONUP:
1002  {
1003  if (pLink) HeapFree(GetProcessHeap(), 0, pLink);
1004 
1006  (max(Link->chrg.cpMin, Link->chrg.cpMax) -
1007  min(Link->chrg.cpMin, Link->chrg.cpMax) + 1) * sizeof(WCHAR));
1008  if (!pLink)
1009  {
1010  /* TODO: Error message */
1011  return;
1012  }
1013 
1014  RichEdit->SendMessageW(EM_SETSEL, Link->chrg.cpMin, Link->chrg.cpMax);
1015  RichEdit->SendMessageW(EM_GETSELTEXT, 0, (LPARAM)pLink);
1016 
1017  ShowPopupMenuEx(m_hWnd, m_hWnd, IDR_LINKMENU, -1);
1018  }
1019  break;
1020  }
1021 }
1022 
1024 {
1025  DWORD csStyle = CS_VREDRAW | CS_HREDRAW;
1026  static ATL::CWndClassInfo wc =
1027  {
1028  {
1029  sizeof(WNDCLASSEX),
1030  csStyle,
1031  StartWindowProc,
1032  0,
1033  0,
1034  NULL,
1035  NULL,
1036  NULL,
1037  (HBRUSH)(COLOR_BTNFACE + 1),
1038  NULL,
1039  L"RAppsAppInfo",
1040  NULL
1041  },
1042  NULL, NULL, IDC_ARROW, TRUE, 0, _T("")
1043  };
1044  return wc;
1045 }
1046 
1048 {
1049  RECT r = { 0,0,0,0 };
1050 
1052 }
1053 
1055 {
1056  ATL::CStringW ScrnshotLocation;
1057  if (Info->RetrieveScrnshot(0, ScrnshotLocation))
1058  {
1059  ScrnshotPrev->DisplayImage(ScrnshotLocation);
1060  }
1061  else
1062  {
1064  }
1065  ResizeChildren();
1067 }
1068 
1070 {
1072  ResizeChildren();
1074 }
1075 
1077 {
1079  ResizeChildren();
1081 }
1082 
1084 {
1085  WORD wCommand = LOWORD(wParam);
1086 
1087  switch (wCommand)
1088  {
1089  case ID_OPEN_LINK:
1090 
1091  ShellExecuteW(m_hWnd, L"open", pLink, NULL, NULL, SW_SHOWNOACTIVATE);
1092  HeapFree(GetProcessHeap(), 0, pLink);
1093  pLink = NULL;
1094  break;
1095 
1096  case ID_COPY_LINK:
1098  HeapFree(GetProcessHeap(), 0, pLink);
1099  pLink = NULL;
1100  break;
1101 
1102  }
1103 }
1104 
1106 {
1107  delete RichEdit;
1108  delete ScrnshotPrev;
1109 }
1110 // **** CAppInfoDisplay ****
1111 
1112 
1113 // **** CAppsListView ****
1114 
1116  bHasCheckboxes(FALSE),
1117  nLastHeaderID(-1)
1118 {
1119 }
1120 
1122 {
1123  if (bIsVisible)
1124  {
1126  }
1127  else
1128  {
1130  }
1131 
1132  bHasCheckboxes = bIsVisible;
1133 }
1134 
1136 {
1137  HWND hHeader;
1138  HDITEMW hColumn;
1139  INT nHeaderID = pnmv->iSubItem;
1140 
1142  return;
1143 
1144  hHeader = (HWND)SendMessage(LVM_GETHEADER, 0, 0);
1145  ZeroMemory(&hColumn, sizeof(hColumn));
1146 
1147  /* If the sorting column changed, remove the sorting style from the old column */
1148  if ((nLastHeaderID != -1) && (nLastHeaderID != nHeaderID))
1149  {
1150  bIsAscending = TRUE; // also reset sorting method to ascending
1151  hColumn.mask = HDI_FORMAT;
1152  Header_GetItem(hHeader, nLastHeaderID, &hColumn);
1153  hColumn.fmt &= ~(HDF_SORTUP | HDF_SORTDOWN);
1154  Header_SetItem(hHeader, nLastHeaderID, &hColumn);
1155  }
1156 
1157  /* Set the sorting style to the new column */
1158  hColumn.mask = HDI_FORMAT;
1159  Header_GetItem(hHeader, nHeaderID, &hColumn);
1160 
1161  hColumn.fmt &= ~(HDF_SORTDOWN | HDF_SORTUP);
1162  hColumn.fmt |= (bIsAscending ? HDF_SORTUP : HDF_SORTDOWN);
1163  Header_SetItem(hHeader, nHeaderID, &hColumn);
1164 
1165  /* Sort the list, using the current values of nHeaderID and bIsAscending */
1166  SortContext ctx = { this, nHeaderID };
1168 
1169  /* Save new values */
1170  nLastHeaderID = nHeaderID;
1172 }
1173 
1175 {
1176  return AddColumn(Index, const_cast<LPWSTR>(Text.GetString()), Width, Format);
1177 }
1178 
1180 {
1181  LVCOLUMNW Column;
1182 
1183  ZeroMemory(&Column, sizeof(Column));
1184 
1186  Column.iSubItem = Index;
1187  Column.pszText = lpText;
1188  Column.cx = Width;
1189  Column.fmt = Format;
1190 
1191  return SendMessage(LVM_INSERTCOLUMN, Index, (LPARAM)(&Column));
1192 }
1193 
1195 {
1197  return;
1198 }
1199 
1201 {
1202  LVITEMW Item;
1203 
1204  ZeroMemory(&Item, sizeof(Item));
1205 
1206  Item.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE;
1207  Item.pszText = const_cast<LPWSTR>(lpText);
1208  Item.lParam = lParam;
1209  Item.iItem = ItemIndex;
1210  Item.iImage = IconIndex;
1211 
1212  if (IconIndex >= 0)
1213  {
1214  Item.iImage = IconIndex;
1215  Item.mask |= LVIF_IMAGE;
1216  }
1217  return InsertItem(&Item);
1218 }
1219 
1221 {
1222  return (HIMAGELIST)SendMessage(LVM_GETIMAGELIST, iImageList, 0);
1223 }
1224 
1226 {
1227  SortContext *ctx = ((SortContext *)lParamSort);
1228  return ctx->lvw->CompareFunc(lParam1, lParam2, ctx->iSubItem);
1229 }
1230 
1231 INT CAppsListView::CompareFunc(LPARAM lParam1, LPARAM lParam2, INT iSubItem)
1232 {
1233  ATL::CStringW Item1, Item2;
1234  LVFINDINFOW IndexInfo;
1235  INT Index;
1236 
1237  IndexInfo.flags = LVFI_PARAM;
1238 
1239  IndexInfo.lParam = lParam1;
1240  Index = FindItem(-1, &IndexInfo);
1241  GetItemText(Index, iSubItem, Item1.GetBuffer(MAX_STR_LEN), MAX_STR_LEN);
1242  Item1.ReleaseBuffer();
1243 
1244  IndexInfo.lParam = lParam2;
1245  Index = FindItem(-1, &IndexInfo);
1246  GetItemText(Index, iSubItem, Item2.GetBuffer(MAX_STR_LEN), MAX_STR_LEN);
1247  Item2.ReleaseBuffer();
1248 
1249  return bIsAscending ? Item1.Compare(Item2) : Item2.Compare(Item1);
1250 }
1251 
1253 {
1254  RECT r = { 205, 28, 465, 250 };
1256 
1258 
1259  if (hwnd)
1260  {
1262  }
1263 
1267  0, 1);
1268 
1269  // currently, this two Imagelist is the same one.
1272 
1273  return hwnd;
1274 }
1275 
1277 {
1278  return (BOOL)(GetItemState(item, LVIS_STATEIMAGEMASK) >> 12) - 1;
1279 }
1280 
1282 {
1283  if (bHasCheckboxes)
1284  {
1286  }
1287 }
1288 
1290 {
1291  if (bHasCheckboxes)
1292  {
1293  if (CheckedItemCount == ItemCount)
1294  {
1295  // clear all
1296  SetCheckState(-1, FALSE);
1297  }
1298  else
1299  {
1300  // check all
1301  SetCheckState(-1, TRUE);
1302  }
1303  }
1304 }
1305 
1307 {
1309  if (item == -1)
1310  {
1311  return (PVOID)0;
1312  }
1313  return (PVOID)GetItemData(item);
1314 }
1315 
1317 {
1318  if (!DeleteAllItems()) return FALSE;
1319  ApplicationViewType = AppType;
1320 
1321  bIsAscending = TRUE;
1322 
1323  ItemCount = 0;
1324  CheckedItemCount = 0;
1325 
1326  // delete old columns
1327  while (ColumnCount)
1328  {
1330  }
1331 
1333 
1334  // add new columns
1336  switch (AppType)
1337  {
1339 
1340  /* Add columns to ListView */
1341  szText.LoadStringW(IDS_APP_NAME);
1343 
1344  szText.LoadStringW(IDS_APP_INST_VERSION);
1346 
1347  szText.LoadStringW(IDS_APP_DESCRIPTION);
1349 
1350  // disable checkboxes
1352  break;
1353 
1355 
1356  /* Add columns to ListView */
1357  szText.LoadStringW(IDS_APP_NAME);
1359 
1360  szText.LoadStringW(IDS_APP_INST_VERSION);
1362 
1363  szText.LoadStringW(IDS_APP_DESCRIPTION);
1365 
1366  // enable checkboxes
1368  break;
1369 
1370  case AppViewTypeEmpty:
1371  default:
1372  break;
1373  }
1374 
1375 
1376  return TRUE;
1377 }
1378 
1380 {
1381  return SendMessage(LVM_SETVIEW, (WPARAM)ViewMode, 0) == 1;
1382 }
1383 
1385 {
1387  {
1388  return FALSE;
1389  }
1390 
1391  /* Load icon from registry */
1392  HICON hIcon = NULL;
1393  ATL::CStringW szIconPath;
1394  if (InstAppInfo->RetrieveIcon(szIconPath))
1395  {
1396  PathParseIconLocationW((LPWSTR)szIconPath.GetString());
1397 
1398  /* Load only the 1st icon from the application executable,
1399  * because all apps provide the executables which have the main icon
1400  * as 1st in the index , so we don't need other icons here */
1402  szIconPath.GetString(),
1403  0);
1404  }
1405 
1406  if (!hIcon)
1407  {
1408  /* Load default icon */
1410  }
1411 
1413  DestroyIcon(hIcon);
1414 
1415  int Index = AddItem(ItemCount, IconIndex, InstAppInfo->szDisplayName, (LPARAM)CallbackParam);
1416  SetItemText(Index, 1, InstAppInfo->szDisplayVersion.IsEmpty() ? L"---" : InstAppInfo->szDisplayVersion);
1417  SetItemText(Index, 2, InstAppInfo->szComments.IsEmpty() ? L"---" : InstAppInfo->szComments);
1418 
1419  ItemCount++;
1420  return TRUE;
1421 }
1422 
1424 {
1426  {
1427  return FALSE;
1428  }
1429 
1430  /* Load icon from file */
1431  HICON hIcon = NULL;
1432  ATL::CStringW szIconPath;
1433  if (AvlbAppInfo->RetrieveIcon(szIconPath))
1434  {
1436  szIconPath.GetString(),
1437  IMAGE_ICON,
1440  LR_LOADFROMFILE);
1441  }
1442 
1443  if (!hIcon || GetLastError() != ERROR_SUCCESS)
1444  {
1445  /* Load default icon */
1447  }
1448 
1450  DestroyIcon(hIcon);
1451 
1452  int Index = AddItem(ItemCount, IconIndex, AvlbAppInfo->m_szName, (LPARAM)CallbackParam);
1453 
1454  if (InitCheckState)
1455  {
1457  }
1458 
1459  SetItemText(Index, 1, AvlbAppInfo->m_szVersion);
1460  SetItemText(Index, 2, AvlbAppInfo->m_szDesc);
1461 
1462  ItemCount++;
1463  return TRUE;
1464 }
1465 
1466 // this function is called when parent window receiving an notification about checkstate changing
1468 {
1469  if (bCheck)
1470  {
1471  CheckedItemCount++;
1472  }
1473  else
1474  {
1475  CheckedItemCount--;
1476  }
1477 }
1478 // **** CAppsListView ****
1479 
1480 
1481 // **** CApplicationView ****
1482 
1484 {
1485  theResult = 0;
1486  switch (message)
1487  {
1488  case WM_CREATE:
1489  {
1490  BOOL bSuccess = TRUE;
1491  m_Panel = new CUiPanel();
1494 
1495  bSuccess &= CreateToolbar();
1497  bSuccess &= CreateComboBox();
1499  bSuccess &= CreateListView();
1501 
1502  m_Toolbar->AutoSize();
1503 
1504  RECT rTop;
1505 
1506  ::GetWindowRect(m_Toolbar->m_hWnd, &rTop);
1507  m_HSplitter->m_Margin.top = rTop.bottom - rTop.top;
1508  if (!bSuccess)
1509  {
1510  return -1; // creation failure
1511  }
1512  }
1513  break;
1514 
1515  case WM_NOTIFY:
1516  {
1517  LPNMHDR pNotifyHeader = (LPNMHDR)lParam;
1518  if (pNotifyHeader->hwndFrom == m_ListView->GetWindow())
1519  {
1520  switch (pNotifyHeader->code)
1521  {
1522  case LVN_ITEMCHANGED:
1523  {
1525 
1526  /* Check if this is a valid item
1527  * (technically, it can be also an unselect) */
1528  INT ItemIndex = pnic->iItem;
1529  if (ItemIndex == -1 ||
1530  ItemIndex >= ListView_GetItemCount(pnic->hdr.hwndFrom))
1531  {
1532  break;
1533  }
1534 
1535  /* Check if the focus has been moved to another item */
1536  if ((pnic->uChanged & LVIF_STATE) &&
1537  (pnic->uNewState & LVIS_FOCUSED) &&
1538  !(pnic->uOldState & LVIS_FOCUSED))
1539  {
1540  ItemGetFocus((LPVOID)pnic->lParam);
1541  }
1542 
1543  /* Check if the item is checked/unchecked */
1544  if (pnic->uChanged & LVIF_STATE)
1545  {
1546  int iOldState = STATEIMAGETOINDEX(pnic->uOldState);
1547  int iNewState = STATEIMAGETOINDEX(pnic->uNewState);
1548 
1549  if (iOldState == STATEIMAGE_UNCHECKED && iNewState == STATEIMAGE_CHECKED)
1550  {
1551  // this item is just checked
1554  }
1555  else if (iOldState == STATEIMAGE_CHECKED && iNewState == STATEIMAGE_UNCHECKED)
1556  {
1557  // this item is just unchecked
1560  }
1561  }
1562  }
1563  break;
1564 
1565  case LVN_COLUMNCLICK:
1566  {
1568 
1569  m_ListView->ColumnClick(pnmv);
1570  }
1571  break;
1572 
1573  case NM_DBLCLK:
1574  {
1576  if (Item->iItem != -1)
1577  {
1578  /* this won't do anything if the program is already installed */
1579 
1581  {
1583  }
1584  }
1585  }
1586  break;
1587 
1588  case NM_RCLICK:
1589  {
1590  if (((LPNMLISTVIEW)lParam)->iItem != -1)
1591  {
1592  ShowPopupMenuEx(m_hWnd, m_hWnd, 0, ID_INSTALL);
1593  }
1594  }
1595  break;
1596  }
1597  }
1598  else if (pNotifyHeader->hwndFrom == m_Toolbar->GetWindow())
1599  {
1600  switch (pNotifyHeader->code)
1601  {
1602  case TTN_GETDISPINFO:
1604  break;
1605  }
1606  }
1607  }
1608  break;
1609 
1610  case WM_SYSCOLORCHANGE:
1611  {
1612  /* Forward WM_SYSCOLORCHANGE to common controls */
1613  m_ListView->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1615  m_Toolbar->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1616  m_ComboBox->SendMessageW(WM_SYSCOLORCHANGE, wParam, lParam);
1617  }
1618  break;
1619 
1620  case WM_SIZE:
1621  {
1622  OnSize(hwnd, wParam, lParam);
1623  break;
1624  }
1625 
1626  case WM_COMMAND:
1627  {
1629  }
1630  break;
1631  }
1632  return FALSE;
1633 }
1634 
1636 {
1637  m_Toolbar = new CMainToolbar();
1641 
1642  return m_Toolbar->Create(m_hWnd) != NULL;
1643 }
1644 
1646 {
1650  m_SearchBar->m_Margin.top = 4;
1652 
1653  return m_SearchBar->Create(m_Toolbar->m_hWnd) != NULL;
1654 }
1655 
1657 {
1661  m_ComboBox->m_Margin.top = 4;
1662 
1663  return m_ComboBox->Create(m_Toolbar->m_hWnd) != NULL;
1664 }
1665 
1667 {
1668  m_HSplitter = new CUiSplitPanel();
1673  m_HSplitter->m_Pos = INT_MAX; //set INT_MAX to use lowest possible position (m_MinSecond)
1674  m_HSplitter->m_MinFirst = 10;
1675  m_HSplitter->m_MinSecond = 140;
1677 
1678  return m_HSplitter->Create(m_hWnd) != NULL;
1679 }
1680 
1682 {
1683  m_ListView = new CAppsListView();
1687 
1688  return m_ListView->Create(m_hWnd) != NULL;
1689 }
1690 
1692 {
1693  m_AppsInfo = new CAppInfoDisplay();
1697 
1698  return m_AppsInfo->Create(m_hWnd) != NULL;
1699 }
1700 
1702 {
1703  if (wParam == SIZE_MINIMIZED)
1704  return;
1705 
1706  /* Size tool bar */
1707  m_Toolbar->AutoSize();
1708 
1709  /* Automatically hide captions */
1710  DWORD dToolbarTreshold = m_Toolbar->GetMaxButtonsWidth();
1711  DWORD dSearchbarMargin = (LOWORD(lParam) - m_SearchBar->m_Width - m_ComboBox->m_Width - TOOLBAR_PADDING * 2);
1712 
1713  if (dSearchbarMargin > dToolbarTreshold)
1714  {
1716  }
1717  else if (dSearchbarMargin < dToolbarTreshold)
1718  {
1720 
1721  }
1722 
1723  RECT r = { 0, 0, LOWORD(lParam), HIWORD(lParam) };
1724  HDWP hdwp = NULL;
1726 
1727  hdwp = BeginDeferWindowPos(count);
1728  if (hdwp)
1729  {
1730  hdwp = m_Panel->OnParentSize(r, hdwp);
1731  if (hdwp)
1732  {
1733  EndDeferWindowPos(hdwp);
1734  }
1735  }
1736 
1738  hdwp = BeginDeferWindowPos(count);
1739  if (hdwp)
1740  {
1741  hdwp = m_SearchBar->OnParentSize(r, hdwp);
1742  if (hdwp)
1743  {
1744  EndDeferWindowPos(hdwp);
1745  }
1746  }
1747 
1750  hdwp = BeginDeferWindowPos(count);
1751  if (hdwp)
1752  {
1753  hdwp = m_ComboBox->OnParentSize(r, hdwp);
1754  if (hdwp)
1755  {
1756  EndDeferWindowPos(hdwp);
1757  }
1758  }
1759 }
1760 
1762 {
1763  if (lParam)
1764  {
1765  if ((HWND)lParam == m_SearchBar->GetWindow())
1766  {
1767  ATL::CStringW szBuf;
1768  switch (HIWORD(wParam))
1769  {
1770  case EN_SETFOCUS:
1771  {
1772  ATL::CStringW szWndText;
1773 
1774  szBuf.LoadStringW(IDS_SEARCH_TEXT);
1775  m_SearchBar->GetWindowTextW(szWndText);
1776  if (szBuf == szWndText)
1777  {
1778  m_SearchBar->SetWindowTextW(L"");
1779  }
1780  }
1781  break;
1782 
1783  case EN_KILLFOCUS:
1784  {
1785  m_SearchBar->GetWindowTextW(szBuf);
1786  if (szBuf.IsEmpty())
1787  {
1788  szBuf.LoadStringW(IDS_SEARCH_TEXT);
1789  m_SearchBar->SetWindowTextW(szBuf.GetString());
1790  }
1791  }
1792  break;
1793 
1794  case EN_CHANGE:
1795  {
1796  ATL::CStringW szWndText;
1797 
1798  szBuf.LoadStringW(IDS_SEARCH_TEXT);
1799  m_SearchBar->GetWindowTextW(szWndText);
1800  if (szBuf == szWndText)
1801  {
1802  szWndText = L"";
1803  m_MainWindow->SearchTextChanged(szWndText);
1804  }
1805  else
1806  {
1807  m_MainWindow->SearchTextChanged(szWndText);
1808  }
1809  }
1810  break;
1811  }
1812 
1813  return;
1814  }
1815  else if ((HWND)lParam == m_ComboBox->GetWindow())
1816  {
1817  int NotifyCode = HIWORD(wParam);
1818  switch (NotifyCode)
1819  {
1820  case CBN_SELCHANGE:
1821  int CurrSelection = m_ComboBox->SendMessageW(CB_GETCURSEL);
1822 
1823  int ViewModeList[] = { LV_VIEW_DETAILS, LV_VIEW_LIST, LV_VIEW_TILE };
1824  ATLASSERT(CurrSelection < (int)_countof(ViewModeList));
1825  if (!m_ListView->SetViewMode(ViewModeList[CurrSelection]))
1826  {
1827  MessageBoxW(L"View mode invalid or unimplemented");
1828  }
1829  break;
1830  }
1831 
1832  return;
1833  }
1834  else if ((HWND)lParam == m_Toolbar->GetWindow())
1835  {
1836  // the message is sent from Toolbar. fall down to continue process
1837  }
1838  else
1839  {
1840  return;
1841  }
1842  }
1843 
1844  // the LOWORD of wParam contains a Menu or Control ID
1845  WORD wCommand = LOWORD(wParam);
1846 
1847  switch (wCommand)
1848  {
1849  case ID_INSTALL:
1851  break;
1852 
1853  case ID_TOOLBAR_INSTALL:
1854  m_MainWindow->SendMessageW(WM_COMMAND, ID_INSTALL, 0);
1855  break;
1856 
1857  case ID_UNINSTALL:
1858  m_MainWindow->SendMessageW(WM_COMMAND, ID_UNINSTALL, 0);
1859  break;
1860 
1861  case ID_MODIFY:
1862  m_MainWindow->SendMessageW(WM_COMMAND, ID_MODIFY, 0);
1863  break;
1864 
1865  case ID_REGREMOVE:
1866  m_MainWindow->SendMessageW(WM_COMMAND, ID_REGREMOVE, 0);
1867  break;
1868 
1869  case ID_REFRESH:
1870  m_MainWindow->SendMessageW(WM_COMMAND, ID_REFRESH, 0);
1871  break;
1872 
1873  case ID_RESETDB:
1874  m_MainWindow->SendMessageW(WM_COMMAND, ID_RESETDB, 0);
1875  break;
1876  }
1877 }
1878 
1880  : m_MainWindow(MainWindow)
1881 {
1882 }
1883 
1885 {
1886  delete m_Toolbar;
1887  delete m_SearchBar;
1888  delete m_ListView;
1889  delete m_AppsInfo;
1890  delete m_HSplitter;
1891 }
1892 
1894 {
1895  DWORD csStyle = CS_VREDRAW | CS_HREDRAW;
1896  static ATL::CWndClassInfo wc =
1897  {
1898  {
1899  sizeof(WNDCLASSEX),
1900  csStyle,
1901  StartWindowProc,
1902  0,
1903  0,
1904  NULL,
1905  NULL,
1906  NULL,
1907  (HBRUSH)(COLOR_BTNFACE + 1),
1908  NULL,
1909  L"RAppsApplicationView",
1910  NULL
1911  },
1912  NULL, NULL, IDC_ARROW, TRUE, 0, _T("")
1913  };
1914  return wc;
1915 }
1916 
1918 {
1919  RECT r = { 0,0,0,0 };
1920 
1922 
1924 }
1925 
1927 {
1928  if (!m_ListView->SetDisplayAppType(AppType))
1929  {
1930  return FALSE;
1931  }
1932  ApplicationViewType = AppType;
1934 
1935  HMENU hMenu = ::GetMenu(m_hWnd);
1936  switch (AppType)
1937  {
1938  case AppViewTypeEmpty:
1939  default:
1944 
1945  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_REGREMOVE, TRUE);
1946  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, FALSE);
1947  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_UNINSTALL, TRUE);
1948  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, TRUE);
1949  break;
1950 
1956 
1957  // TODO: instead of disable these button, I would rather remove them.
1958  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_REGREMOVE, TRUE);
1959  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, FALSE);
1960  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_UNINSTALL, TRUE);
1961  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, TRUE);
1962  break;
1963 
1969 
1970  // TODO: instead of disable these button, I would rather remove them.
1971  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_REGREMOVE, FALSE);
1972  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, TRUE);
1973  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_UNINSTALL, FALSE);
1974  m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, FALSE);
1975  break;
1976  }
1977  return TRUE;
1978 }
1979 
1981 {
1983  {
1984  return FALSE;
1985  }
1986  return m_ListView->AddInstalledApplication(InstAppInfo, param);
1987 }
1988 
1990 {
1992  {
1993  return FALSE;
1994  }
1995  return m_ListView->AddAvailableApplication(AvlbAppInfo, InitCheckState, param);
1996 }
1997 
1999 {
2000  m_ListView->CheckAll();
2001  return;
2002 }
2003 
2005 {
2006  return m_ListView->GetFocusedItemData();
2007 }
2008 
2010 {
2011  return m_ListView->GetItemCount();
2012 }
2013 
2015 {
2016  m_Toolbar->AppendTabOrderWindow(Direction, TabOrderList);
2017  m_ComboBox->AppendTabOrderWindow(Direction, TabOrderList);
2018  m_SearchBar->AppendTabOrderWindow(Direction, TabOrderList);
2019  m_ListView->AppendTabOrderWindow(Direction, TabOrderList);
2020  m_AppsInfo->AppendTabOrderWindow(Direction, TabOrderList);
2021 
2022  return;
2023 }
2024 
2025 // this function is called when a item of listview get focus.
2026 // CallbackParam is the param passed to listview when adding the item (the one getting focus now).
2028 {
2029  switch (ApplicationViewType)
2030  {
2032  return m_AppsInfo->ShowInstalledAppInfo((CInstalledApplicationInfo *)CallbackParam);
2033 
2035  return m_AppsInfo->ShowAvailableAppInfo((CAvailableApplicationInfo *)CallbackParam);
2036 
2037  case AppViewTypeEmpty:
2038  default:
2040  return FALSE;
2041  }
2042 }
2043 
2044 // this function is called when a item of listview is checked/unchecked
2045 // CallbackParam is the param passed to listview when adding the item (the one getting focus now).
2047 {
2048  m_MainWindow->ItemCheckStateChanged(bChecked, CallbackParam);
2049  return TRUE;
2050 }
2051 // **** 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:1423
#define WS_CLIPSIBLINGS
Definition: pedump.c:618
DWORD GetMaxButtonsWidth() const
Definition: appview.cpp:174
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
int iImage
Definition: commctrl.h:2363
HDWP WINAPI BeginDeferWindowPos(_In_ int)
BOOL AddAvailableApplication(CAvailableApplicationInfo *AvlbAppInfo, BOOL InitCheckState, LPVOID param)
Definition: appview.cpp:1989
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ FLT_IO_OPERATION_FLAGS _Out_opt_ PULONG BytesWritten
Definition: fltkernel.h:1293
#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:564
BOOL AddInstalledApplication(CInstalledApplicationInfo *InstAppInfo, LPVOID param)
Definition: appview.cpp:1980
#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:1656
#define ID_REGREMOVE
Definition: resource.h:83
#define IDS_LANGUAGE_SINGLE
Definition: resource.h:212
#define LVCF_TEXT
Definition: commctrl.h:2584
#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
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
BOOL WINAPI DestroyIcon(_In_ HICON)
Definition: cursoricon.c:2022
#define TRUE
Definition: types.h:120
CAppScrnshotPreview * ScrnshotPrev
Definition: appview.h:187
#define IDS_SELECT_ALL
Definition: resource.h:116
VOID ItemCheckStateNotify(int iItem, BOOL bCheck)
Definition: appview.cpp:1467
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: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:472
GLuint GLuint GLsizei count
Definition: gl.h:1545
void DeleteColumn(INT Index)
Definition: appview.cpp:1194
#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:540
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:1306
#define TOOLBARCLASSNAMEW
Definition: commctrl.h:939
BOOL SetViewMode(DWORD ViewMode)
Definition: appview.cpp:1379
#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:1648
#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)
struct @1610 Msg[]
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:386
#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:1483
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:284
#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:2014
static BOOLEAN bSuccess
Definition: drive.cpp:419
#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 TraceInfo Info
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:1926
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:1135
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:834
#define IDS_INFO_COMMENTS
Definition: resource.h:153
virtual HDWP OnParentSize(RECT parentRect, HDWP hDwp)
Definition: rosui.h:417
#define LVIF_TEXT
Definition: commctrl.h:2305
#define LVCF_SUBITEM
Definition: commctrl.h:2585
#define LVM_INSERTCOLUMN
Definition: commctrl.h:2630
VOID OnCommand(WPARAM wParam, LPARAM lParam)
Definition: appview.cpp:1761
UINT code
Definition: winuser.h:3134
#define STATEIMAGETOINDEX(x)
Definition: appview.h:61
HWND Create(HWND hwndParent)
Definition: appview.cpp:1917
BOOL WINAPI PatBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD)
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
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 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:330
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:2027
BOOL CreateHSplitter()
Definition: appview.cpp:1666
BOOL ShowInstalledAppInfo(CInstalledApplicationInfo *Info)
Definition: appview.cpp:1069
#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:1190
#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
LPARAM lParam
Definition: commctrl.h:2364
CUiAlignment m_HorizontalAlignment
Definition: rosui.h:238
#define Header_GetItem(hwndHD, i, phdi)
Definition: commctrl.h:747
INT AddItem(INT ItemIndex, INT IconIndex, LPCWSTR lpText, LPARAM lParam)
Definition: appview.cpp:1200
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:908
#define CB_ADDSTRING
Definition: winuser.h:1918
#define IDS_UNINSTALL
Definition: resource.h:93
BOOL GetCheckState(INT item)
Definition: appview.cpp:1276
#define TB_GETEXTENDEDSTYLE
Definition: commctrl.h:1187
#define LVS_SORTASCENDING
Definition: commctrl.h:2264
VOID ResizeChildren()
Definition: appview.cpp:939
smooth NULL
Definition: ftsmooth.c:416
VOID OnLink(ENLINK *Link)
Definition: appview.cpp:996
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:376
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:422
INT m_MinSecond
Definition: rosui.h:541
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:1225
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:496
BOOL ItemCheckStateChanged(BOOL bChecked, LPVOID CallbackParam)
Definition: appview.cpp:2046
#define LOADING_ANIMATION_PERIOD
Definition: appview.h:54
HWND Create(HWND hwndParent)
Definition: rosui.h:799
BOOL SetDisplayAppType(APPLICATION_VIEW_TYPE AppType)
Definition: appview.cpp:1316
#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:454
#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:539
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:1281
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)
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:1879
LPWSTR pszText
Definition: commctrl.h:2361
#define MF_ENABLED
Definition: winuser.h:128
#define INDEXTOSTATEIMAGEMASK(i)
Definition: commctrl.h:2324
_Inout_ PSIZE_T _In_opt_ PMDLX _In_ MM_ROTATE_DIRECTION Direction
Definition: mmfuncs.h:772
#define IDS_AINFO_LANGUAGES
Definition: resource.h:168
BOOL AddColumn(INT Index, ATL::CStringW &Text, INT Width, INT Format)
Definition: appview.cpp:1174
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:563
#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
static const UCHAR Index[8]
Definition: usbohci.c:18
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:510
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:538
#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:1635
INT CompareFunc(LPARAM lParam1, LPARAM lParam2, INT iSubItem)
Definition: appview.cpp:1231
UINT mask
Definition: commctrl.h:2356
#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:1076
#define FILE_ATTRIBUTE_NORMAL
Definition: compat.h:137
Status
Definition: gdiplustypes.h:24
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:1701
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:1893
static LRESULT CALLBACK StartWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: atlwin.h:1530
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:239
#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:1006
#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:1220
#define IDS_AINFO_PACKAGE_NAME
Definition: resource.h:172
Status GetLastStatus()
BOOL CreateAppInfoDisplay()
Definition: appview.cpp:1691
INT m_Pos
Definition: rosui.h:537
#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:1252
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
#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:1645
#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:1047
#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:1384
#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:1023
#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 IDR_LINKMENU
Definition: resource.h:69
HWND Create(HWND hwndParent)
Definition: appview.cpp:215
BOOL CreateListView()
Definition: appview.cpp:1681
#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:355
#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:35
#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:1289
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:1054
#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:236
#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:403
#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:477
#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:2004
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:890
#define IDS_INFO_INFOABOUT
Definition: resource.h:152
#define IDS_TOOLTIP_INSTALL
Definition: resource.h:128
VOID SetCheckboxesVisible(BOOL bIsVisible)
Definition: appview.cpp:1121
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:1083
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