ReactOS  0.4.15-dev-3324-gda4e15f
CAppScrnshotPreview Class Reference

#include <appview.h>

Inheritance diagram for CAppScrnshotPreview:
Collaboration diagram for CAppScrnshotPreview:

Public Member Functions

HWND Create (HWND hParent)
 
VOID PreviousDisplayCleanup ()
 
VOID DisplayEmpty ()
 
BOOL DisplayImage (LPCWSTR lpszLocation)
 
int GetRequestedWidth (int Height)
 
 ~CAppScrnshotPreview ()
 
- Public Member Functions inherited from ATL::CWindowImpl< CAppScrnshotPreview >
HWND Create (HWND hWndParent, _U_RECT rect=NULL, LPCTSTR szWindowName=NULL, DWORD dwStyle=0, DWORD dwExStyle=0, _U_MENUorID MenuOrID=0U, LPVOID lpCreateParam=NULL)
 
- Public Member Functions inherited from ATL::CWindowImplBaseT< CWindow, CControlWinTraits >
 CWindowImplBaseT ()
 
virtual void OnFinalMessage (HWND)
 
BOOL SubclassWindow (HWND hWnd)
 
HWND UnsubclassWindow (BOOL bForce=FALSE)
 
virtual WNDPROC GetWindowProc ()
 
LRESULT DefWindowProc (UINT uMsg, WPARAM wParam, LPARAM lParam)
 
HWND Create (HWND hWndParent, _U_RECT rect, LPCTSTR szWindowName, DWORD dwStyle, DWORD dwExStyle, _U_MENUorID MenuOrID, ATOM atom, LPVOID lpCreateParam)
 
- Public Member Functions inherited from ATL::CWindowImplRoot< CWindow >
 CWindowImplRoot ()
 
virtual ~CWindowImplRoot ()
 
- Public Member Functions inherited from ATL::CWindow
 CWindow (HWND hWnd=NULL)
 
 operator HWND () const
 
UINT ArrangeIconicWindows ()
 
void Attach (HWND hWndNew)
 
HDC BeginPaint (LPPAINTSTRUCT lpPaint)
 
BOOL BringWindowToTop ()
 
BOOL CenterWindow (HWND hWndCenter=NULL)
 
BOOL ChangeClipboardChain (HWND hWndNewNext)
 
BOOL CheckDlgButton (int nIDButton, UINT nCheck)
 
BOOL CheckRadioButton (int nIDFirstButton, int nIDLastButton, int nIDCheckButton)
 
HWND ChildWindowFromPoint (POINT point) const
 
HWND ChildWindowFromPointEx (POINT point, UINT uFlags) const
 
BOOL ClientToScreen (LPPOINT lpPoint) const
 
BOOL ClientToScreen (LPRECT lpRect) const
 
HWND Create (LPCTSTR lpstrWndClass, HWND hWndParent, _U_RECT rect=NULL, LPCTSTR szWindowName=NULL, DWORD dwStyle=0, DWORD dwExStyle=0, _U_MENUorID MenuOrID=0U, LPVOID lpCreateParam=NULL)
 
BOOL CreateCaret (HBITMAP pBitmap)
 
BOOL CreateGrayCaret (int nWidth, int nHeight)
 
BOOL CreateSolidCaret (int nWidth, int nHeight)
 
HDWP DeferWindowPos (HDWP hWinPosInfo, HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT uFlags)
 
BOOL DestroyWindow ()
 
HWND Detach ()
 
int DlgDirList (LPTSTR lpPathSpec, int nIDListBox, int nIDStaticPath, UINT nFileType)
 
int DlgDirListComboBox (LPTSTR lpPathSpec, int nIDComboBox, int nIDStaticPath, UINT nFileType)
 
BOOL DlgDirSelect (LPTSTR lpString, int nCount, int nIDListBox)
 
BOOL DlgDirSelectComboBox (LPTSTR lpString, int nCount, int nIDComboBox)
 
void DragAcceptFiles (BOOL bAccept=TRUE)
 
BOOL DrawMenuBar ()
 
BOOL EnableScrollBar (UINT uSBFlags, UINT uArrowFlags=ESB_ENABLE_BOTH)
 
BOOL EnableWindow (BOOL bEnable=TRUE)
 
void EndPaint (LPPAINTSTRUCT lpPaint)
 
BOOL FlashWindow (BOOL bInvert)
 
BOOL GetClientRect (LPRECT lpRect) const
 
HDC GetDC ()
 
HDC GetDCEx (HRGN hRgnClip, DWORD flags)
 
HWND GetDescendantWindow (int nID) const
 
HRESULT GetDlgControl (int nID, REFIID iid, void **ppCtrl)
 
int GetDlgCtrlID () const
 
HRESULT GetDlgHost (int nID, REFIID iid, void **ppHost)
 
HWND GetDlgItem (int nID)
 
UINT GetDlgItemInt (int nID, BOOL *lpTrans=NULL, BOOL bSigned=TRUE) const
 
UINT GetDlgItemText (int nID, LPTSTR lpStr, int nMaxCount) const
 
BOOL GetDlgItemText (int nID, BSTR &bstrText) const
 
DWORD GetExStyle () const
 
HFONT GetFont () const
 
DWORD GetHotKey () const
 
HICON GetIcon (BOOL bBigIcon=TRUE) const
 
HWND GetLastActivePopup () const
 
HMENU GetMenu () const
 
HWND GetNextDlgGroupItem (HWND hWndCtl, BOOL bPrevious=FALSE) const
 
HWND GetNextDlgTabItem (HWND hWndCtl, BOOL bPrevious=FALSE) const
 
CWindow GetParent () const
 
BOOL GetScrollInfo (int nBar, LPSCROLLINFO lpScrollInfo)
 
BOOL GetScrollPos (int nBar)
 
BOOL GetScrollRange (int nBar, LPINT lpMinPos, LPINT lpMaxPos) const
 
DWORD GetStyle () const
 
HMENU GetSystemMenu (BOOL bRevert)
 
HWND GetTopLevelParent () const
 
HWND GetTopLevelWindow () const
 
HWND GetTopWindow () const
 
BOOL GetUpdateRect (LPRECT lpRect, BOOL bErase=FALSE)
 
int GetUpdateRgn (HRGN hRgn, BOOL bErase=FALSE)
 
HWND GetWindow (UINT nCmd) const
 
DWORD GetWindowContextHelpId () const
 
HDC GetWindowDC ()
 
LONG GetWindowLong (int nIndex) const
 
LONG_PTR GetWindowLongPtr (int nIndex) const
 
BOOL GetWindowPlacement (WINDOWPLACEMENT *lpwndpl) const
 
DWORD GetWindowProcessID ()
 
BOOL GetWindowRect (LPRECT lpRect) const
 
int GetWindowRgn (HRGN hRgn)
 
int GetWindowText (LPTSTR lpszStringBuf, int nMaxCount) const
 
BOOL GetWindowText (BSTR &bstrText)
 
int GetWindowTextLength () const
 
DWORD GetWindowThreadID ()
 
WORD GetWindowWord (int nIndex) const
 
void GotoDlgCtrl (HWND hWndCtrl) const
 
BOOL HideCaret ()
 
BOOL HiliteMenuItem (HMENU hMenu, UINT uHiliteItem, UINT uHilite)
 
BOOL Invalidate (BOOL bErase=TRUE)
 
BOOL InvalidateRect (LPCRECT lpRect, BOOL bErase=TRUE)
 
void InvalidateRgn (HRGN hRgn, BOOL bErase=TRUE)
 
BOOL IsChild (const HWND hWnd) const
 
BOOL IsDialogMessage (LPMSG lpMsg)
 
UINT IsDlgButtonChecked (int nIDButton) const
 
BOOL IsIconic () const
 
BOOL IsParentDialog ()
 
BOOL IsWindow () const
 
BOOL IsWindowEnabled () const
 
BOOL IsWindowVisible () const
 
BOOL IsWindowUnicode ()
 
BOOL IsZoomed () const
 
BOOL KillTimer (UINT_PTR nIDEvent)
 
BOOL LockWindowUpdate (BOOL bLock=TRUE)
 
int MapWindowPoints (HWND hWndTo, LPPOINT lpPoint, UINT nCount) const
 
int MapWindowPoints (HWND hWndTo, LPRECT lpRect) const
 
int MessageBox (LPCTSTR lpszText, LPCTSTR lpszCaption=NULL, UINT nType=MB_OK)
 
BOOL ModifyStyle (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
 
BOOL ModifyStyleEx (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
 
BOOL MoveWindow (int x, int y, int nWidth, int nHeight, BOOL bRepaint=TRUE)
 
void NextDlgCtrl () const
 
BOOL OpenClipboard ()
 
BOOL PostMessage (UINT message, WPARAM wParam=0, LPARAM lParam=0)
 
void PrevDlgCtrl () const
 
void Print (HDC hDC, DWORD dwFlags) const
 
void PrintClient (HDC hDC, DWORD dwFlags) const
 
BOOL RedrawWindow (LPCRECT lpRectUpdate=NULL, HRGN hRgnUpdate=NULL, UINT flags=RDW_INVALIDATE|RDW_UPDATENOW|RDW_ERASE)
 
int ReleaseDC (HDC hDC)
 
BOOL ResizeClient (int nWidth, int nHeight, BOOL bRedraw=FALSE)
 
BOOL ScreenToClient (LPPOINT lpPoint) const
 
BOOL ScrollWindow (int xAmount, int yAmount, LPCRECT lpRect=NULL, LPCRECT lpClipRect=NULL)
 
int ScrollWindowEx (int dx, int dy, LPCRECT lpRectScroll, LPCRECT lpRectClip, HRGN hRgnUpdate, LPRECT lpRectUpdate, UINT flags)
 
LRESULT SendDlgItemMessage (int nID, UINT message, WPARAM wParam=0, LPARAM lParam=0)
 
LRESULT SendMessage (UINT message, WPARAM wParam=0, LPARAM lParam=0)
 
void SendMessageToDescendants (UINT message, WPARAM wParam=0, LPARAM lParam=0, BOOL bDeep=TRUE)
 
BOOL SendNotifyMessage (UINT message, WPARAM wParam=0, LPARAM lParam=0)
 
HWND SetActiveWindow ()
 
HWND SetCapture ()
 
HWND SetClipboardViewer ()
 
int SetDlgCtrlID (int nID)
 
BOOL SetDlgItemInt (int nID, UINT nValue, BOOL bSigned=TRUE)
 
BOOL SetDlgItemText (int nID, LPCTSTR lpszString)
 
HWND SetFocus ()
 
void SetFont (HFONT hFont, BOOL bRedraw=TRUE)
 
int SetHotKey (WORD wVirtualKeyCode, WORD wModifiers)
 
HICON SetIcon (HICON hIcon, BOOL bBigIcon=TRUE)
 
BOOL SetMenu (HMENU hMenu)
 
HWND SetParent (HWND hWndNewParent)
 
void SetRedraw (BOOL bRedraw=TRUE)
 
int SetScrollInfo (int nBar, LPSCROLLINFO lpScrollInfo, BOOL bRedraw=TRUE)
 
int SetScrollPos (int nBar, int nPos, BOOL bRedraw=TRUE)
 
BOOL SetScrollRange (int nBar, int nMinPos, int nMaxPos, BOOL bRedraw=TRUE)
 
UINT_PTR SetTimer (UINT_PTR nIDEvent, UINT nElapse, void(CALLBACK *lpfnTimer)(HWND, UINT, UINT_PTR, DWORD)=NULL)
 
BOOL SetWindowContextHelpId (DWORD dwContextHelpId)
 
LONG SetWindowLong (int nIndex, LONG dwNewLong)
 
LONG_PTR SetWindowLongPtr (int nIndex, LONG_PTR dwNewLong)
 
BOOL SetWindowPlacement (const WINDOWPLACEMENT *lpwndpl)
 
BOOL SetWindowPos (HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags)
 
int SetWindowRgn (HRGN hRgn, BOOL bRedraw=FALSE)
 
BOOL SetWindowText (LPCTSTR lpszString)
 
WORD SetWindowWord (int nIndex, WORD wNewWord)
 
BOOL ShowCaret ()
 
BOOL ShowOwnedPopups (BOOL bShow=TRUE)
 
BOOL ShowScrollBar (UINT nBar, BOOL bShow=TRUE)
 
BOOL ShowWindow (int nCmdShow)
 
BOOL ShowWindowAsync (int nCmdShow)
 
BOOL UpdateWindow ()
 
BOOL ValidateRect (LPCRECT lpRect)
 
BOOL ValidateRgn (HRGN hRgn)
 
BOOL WinHelp (LPCTSTR lpszHelp, UINT nCmd=HELP_CONTEXT, DWORD dwData=0)
 

Static Public Member Functions

static ATL::CWndClassInfoGetWndClassInfo ()
 
- Static Public Member Functions inherited from ATL::CWindowImpl< CAppScrnshotPreview >
static LPCTSTR GetWndCaption ()
 
- Static Public Member Functions inherited from ATL::CWindowImplBaseT< CWindow, CControlWinTraits >
static DWORD GetWndStyle (DWORD dwStyle)
 
static DWORD GetWndExStyle (DWORD dwExStyle)
 
static LRESULT CALLBACK StartWindowProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
static LRESULT CALLBACK WindowProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
- Static Public Member Functions inherited from ATL::CWindow
static LPCTSTR GetWndClassName ()
 
static LRESULT SendMessage (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
 

Private Member Functions

BOOL ProcessWindowMessage (HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam, LRESULT &theResult, DWORD dwMapId)
 
VOID DisplayLoading ()
 
VOID DisplayFailed ()
 
BOOL DisplayFile (LPCWSTR lpszFileName)
 
VOID SetStatus (SCRNSHOT_STATUS Status)
 
VOID PaintOnDC (HDC hdc, int width, int height, BOOL bDrawBkgnd)
 
float GetLoadingDotWidth (int width, int height)
 
float GetFrameDotShift (int Frame, int width, int height)
 

Private Attributes

SCRNSHOT_STATUS ScrnshotPrevStauts = SCRNSHOT_PREV_EMPTY
 
ImagepImage = NULL
 
HICON hBrokenImgIcon = NULL
 
BOOL bLoadingTimerOn = FALSE
 
int LoadingAnimationFrame = 0
 
int BrokenImgSize = BROKENIMG_ICON_SIZE
 
pASYNCINET AsyncInet = NULL
 
LONGLONG ContentID = 0
 
ATL::CStringW TempImagePath
 

Additional Inherited Members

- Public Types inherited from ATL::CWindowImplRoot< CWindow >
enum  
 
- Public Attributes inherited from ATL::CWindowImplBaseT< CWindow, CControlWinTraits >
WNDPROC m_pfnSuperWindowProc
 
- Public Attributes inherited from ATL::CWindowImplRoot< CWindow >
CWndProcThunk m_thunk
 
const _ATL_MSGm_pCurrentMsg
 
DWORD m_dwState
 
- Public Attributes inherited from ATL::CWindow
HWND m_hWnd
 
- Static Public Attributes inherited from ATL::CWindow
static RECT rcDefault
 

Detailed Description

Definition at line 122 of file appview.h.

Constructor & Destructor Documentation

◆ ~CAppScrnshotPreview()

CAppScrnshotPreview::~CAppScrnshotPreview ( )

Definition at line 884 of file appview.cpp.

885 {
887 }
VOID PreviousDisplayCleanup()
Definition: appview.cpp:769

Member Function Documentation

◆ Create()

HWND CAppScrnshotPreview::Create ( HWND  hParent)

Definition at line 762 of file appview.cpp.

763 {
764  RECT r = { 0,0,0,0 };
765 
767 }
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
_In_ BOOLEAN Create
Definition: pstypes.h:527
#define WS_CHILD
Definition: pedump.c:617
static const WCHAR L[]
Definition: oid.c:1250
const DOCKBAR PVOID HWND hParent
Definition: tooldock.h:22
#define WS_VISIBLE
Definition: pedump.c:620

Referenced by CAppInfoDisplay::ProcessWindowMessage().

◆ DisplayEmpty()

VOID CAppScrnshotPreview::DisplayEmpty ( )

◆ DisplayFailed()

VOID CAppScrnshotPreview::DisplayFailed ( )
private

Definition at line 610 of file appview.cpp.

611 {
615 }
VOID SetStatus(SCRNSHOT_STATUS Status)
Definition: appview.cpp:630
#define InterlockedIncrement64
Definition: interlocked.h:211
LONGLONG ContentID
Definition: appview.h:134
VOID PreviousDisplayCleanup()
Definition: appview.cpp:769

Referenced by DisplayFile(), DisplayImage(), and ProcessWindowMessage().

◆ DisplayFile()

BOOL CAppScrnshotPreview::DisplayFile ( LPCWSTR  lpszFileName)
private

Definition at line 617 of file appview.cpp.

618 {
621  pImage = Bitmap::FromFile(lpszFileName, 0);
622  if (pImage->GetLastStatus() != Ok)
623  {
624  DisplayFailed();
625  return FALSE;
626  }
627  return TRUE;
628 }
static Bitmap * FromFile(const WCHAR *filename, BOOL useEmbeddedColorManagement)
#define TRUE
Definition: types.h:120
VOID SetStatus(SCRNSHOT_STATUS Status)
Definition: appview.cpp:630
#define FALSE
Definition: types.h:117
Status GetLastStatus()
VOID PreviousDisplayCleanup()
Definition: appview.cpp:769

Referenced by DisplayImage(), and ProcessWindowMessage().

◆ DisplayImage()

BOOL CAppScrnshotPreview::DisplayImage ( LPCWSTR  lpszLocation)

Definition at line 800 of file appview.cpp.

801 {
804 
805  if (PathIsURLW(lpszLocation))
806  {
807  DisplayLoading();
808 
810  if (!DownloadParam) return FALSE;
811 
812  DownloadParam->hwndNotify = m_hWnd;
813  DownloadParam->ID = ID;
814  // generate a filename
816  PathAppendW(ScrnshotFolder.GetBuffer(MAX_PATH), L"screenshots");
817  ScrnshotFolder.ReleaseBuffer();
818 
819  if (!PathIsDirectoryW(ScrnshotFolder.GetString()))
820  {
821  CreateDirectoryW(ScrnshotFolder.GetString(), NULL);
822  }
823 
824  if (!GetTempFileNameW(ScrnshotFolder.GetString(), L"img",
825  0, DownloadParam->DownloadFileName.GetBuffer(MAX_PATH)))
826  {
827  DownloadParam->DownloadFileName.ReleaseBuffer();
828  delete DownloadParam;
829  DisplayFailed();
830  return FALSE;
831  }
832  DownloadParam->DownloadFileName.ReleaseBuffer();
833 
834  DownloadParam->hFile = CreateFileW(DownloadParam->DownloadFileName.GetString(),
836  if (DownloadParam->hFile == INVALID_HANDLE_VALUE)
837  {
838  delete DownloadParam;
839  DisplayFailed();
840  return FALSE;
841  }
842 
844  if (!AsyncInet)
845  {
846  CloseHandle(DownloadParam->hFile);
847  DeleteFileW(DownloadParam->DownloadFileName.GetBuffer());
848  delete DownloadParam;
849  DisplayFailed();
850  return FALSE;
851  }
852  return TRUE;
853  }
854  else
855  {
856  return DisplayFile(lpszLocation);
857  }
858 }
BOOL WINAPI CreateDirectoryW(IN LPCWSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes)
Definition: dir.c:90
struct __ScrnshotDownloadParam ScrnshotDownloadParam
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
Definition: path.c:1722
pASYNCINET AsyncInet
Definition: appview.h:133
#define CloseHandle
Definition: compat.h:598
#define TRUE
Definition: types.h:120
#define INVALID_HANDLE_VALUE
Definition: compat.h:590
BOOL WINAPI PathIsURLW(LPCWSTR lpstrPath)
Definition: url.c:2432
BOOL WINAPI PathAppendW(LPWSTR lpszPath, LPCWSTR lpszAppend)
Definition: path.c:126
void ReleaseBuffer(_In_ int nNewLength=-1)
Definition: atlsimpstr.h:372
#define FALSE
Definition: types.h:117
#define GENERIC_WRITE
Definition: nt_native.h:90
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
Definition: delete.c:39
int64_t LONGLONG
Definition: typedefs.h:68
#define InterlockedIncrement64
Definition: interlocked.h:211
static AvailableStrings m_Strings
Definition: available.h:112
#define MAX_PATH
Definition: compat.h:34
PCXSTR GetString() const
Definition: atlsimpstr.h:361
UINT WINAPI GetTempFileNameW(IN LPCWSTR lpPathName, IN LPCWSTR lpPrefixString, IN UINT uUnique, OUT LPWSTR lpTempFileName)
Definition: filename.c:84
BOOL DisplayFile(LPCWSTR lpszFileName)
Definition: appview.cpp:617
LONGLONG ContentID
Definition: appview.h:134
pASYNCINET AsyncInetDownload(LPCWSTR lpszAgent, DWORD dwAccessType, LPCWSTR lpszProxy, LPCWSTR lpszProxyBypass, LPCWSTR lpszUrl, BOOL bAllowCache, ASYNCINET_CALLBACK Callback, VOID *Extension)
Definition: asyncinet.cpp:33
#define FILE_ATTRIBUTE_NORMAL
Definition: compat.h:137
static const WCHAR L[]
Definition: oid.c:1250
HWND m_hWnd
Definition: atlwin.h:268
#define ID
Definition: ruserpass.c:36
#define CREATE_ALWAYS
Definition: disk.h:72
#define INTERNET_OPEN_TYPE_PRECONFIG
Definition: wininet.h:521
VOID PreviousDisplayCleanup()
Definition: appview.cpp:769
#define NULL
Definition: types.h:112
ATL::CStringW szAppsPath
Definition: available.h:33
int ScrnshotDownloadCallback(pASYNCINET AsyncInet, ASYNC_EVENT Event, WPARAM wParam, LPARAM lParam, VOID *Extension)
Definition: appview.cpp:439
#define CreateFileW
Definition: compat.h:600

Referenced by CAppInfoDisplay::ShowAvailableAppInfo().

◆ DisplayLoading()

VOID CAppScrnshotPreview::DisplayLoading ( )
private

Definition at line 598 of file appview.cpp.

599 {
601  if (bLoadingTimerOn)
602  {
604  }
608 }
#define TRUE
Definition: types.h:120
#define TIMER_LOADING_ANIMATION
Definition: appview.h:52
VOID SetStatus(SCRNSHOT_STATUS Status)
Definition: appview.cpp:630
UINT_PTR SetTimer(UINT_PTR nIDEvent, UINT nElapse, void(CALLBACK *lpfnTimer)(HWND, UINT, UINT_PTR, DWORD)=NULL)
Definition: atlwin.h:1193
BOOL KillTimer(UINT_PTR nIDEvent)
Definition: atlwin.h:911
int LoadingAnimationFrame
Definition: appview.h:131
#define LOADING_ANIMATION_FPS
Definition: appview.h:55

Referenced by DisplayImage().

◆ GetFrameDotShift()

float CAppScrnshotPreview::GetFrameDotShift ( int  Frame,
int  width,
int  height 
)
private

Definition at line 730 of file appview.cpp.

731 {
732  return min(width, height) *
733  (1.0 / 16.0) *
734  (2.0 / (2.0 - sqrt(3.0))) *
735  (max(sin((float)Frame * 2 * PI / (LOADING_ANIMATION_PERIOD * LOADING_ANIMATION_FPS)), sqrt(3.0) / 2.0) - sqrt(3.0) / 2.0);
736 }
_STLP_DECLSPEC complex< float > _STLP_CALL sqrt(const complex< float > &)
Definition: complex.cpp:188
GLint GLint GLsizei width
Definition: gl.h:1546
#define max(a, b)
Definition: svc.c:63
#define LOADING_ANIMATION_PERIOD
Definition: appview.h:54
#define PI
Definition: appview.h:58
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
#define min(a, b)
Definition: monoChain.cc:55
_STLP_DECLSPEC complex< float > _STLP_CALL sin(const complex< float > &)
#define LOADING_ANIMATION_FPS
Definition: appview.h:55

Referenced by PaintOnDC().

◆ GetLoadingDotWidth()

float CAppScrnshotPreview::GetLoadingDotWidth ( int  width,
int  height 
)
private

Definition at line 725 of file appview.cpp.

726 {
727  return min(width, height) / 20.0;
728 }
GLint GLint GLsizei width
Definition: gl.h:1546
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
#define min(a, b)
Definition: monoChain.cc:55

Referenced by PaintOnDC().

◆ GetRequestedWidth()

int CAppScrnshotPreview::GetRequestedWidth ( int  Height)

Definition at line 860 of file appview.cpp.

861 {
862  switch (ScrnshotPrevStauts)
863  {
864  case SCRNSHOT_PREV_EMPTY:
865  return 0;
867  return 200;
868  case SCRNSHOT_PREV_IMAGE:
869  if (pImage)
870  {
871  // return the width needed to display image inside the window.
872  // and always keep window w/h ratio inside [ 1/SCRNSHOT_MAX_ASPECT_RAT, SCRNSHOT_MAX_ASPECT_RAT ]
873  return (int)floor((float)Height *
875  }
876  return 0;
878  return 200;
879  default:
880  return 0;
881  }
882 }
#define max(a, b)
Definition: svc.c:63
SCRNSHOT_STATUS ScrnshotPrevStauts
Definition: appview.h:127
UINT GetHeight()
UINT GetWidth()
static float(__cdecl *square_half_float)(float x
#define min(a, b)
Definition: monoChain.cc:55
_Check_return_ _CRTIMP double __cdecl floor(_In_ double x)
#define SCRNSHOT_MAX_ASPECT_RAT
Definition: appview.h:29

Referenced by CAppInfoDisplay::ResizeChildren().

◆ GetWndClassInfo()

ATL::CWndClassInfo & CAppScrnshotPreview::GetWndClassInfo ( )
static

Definition at line 738 of file appview.cpp.

739 {
740  DWORD csStyle = CS_VREDRAW | CS_HREDRAW;
741  static ATL::CWndClassInfo wc =
742  {
743  {
744  sizeof(WNDCLASSEX),
745  csStyle,
747  0,
748  0,
749  NULL,
750  0,
752  (HBRUSH)(COLOR_BTNFACE + 1),
753  0,
754  L"RAppsScrnshotPreview",
755  NULL
756  },
757  NULL, NULL, IDC_ARROW, TRUE, 0, _T("")
758  };
759  return wc;
760 }
#define TRUE
Definition: types.h:120
#define CS_HREDRAW
Definition: winuser.h:648
#define CS_VREDRAW
Definition: winuser.h:653
#define _T(x)
Definition: vfdio.h:22
unsigned long DWORD
Definition: ntddk_ex.h:95
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
Definition: cursoricon.c:2074
static const WCHAR L[]
Definition: oid.c:1250
#define COLOR_BTNFACE
Definition: winuser.h:918
static LRESULT CALLBACK StartWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: atlwin.h:1554
#define NULL
Definition: types.h:112
#define IDC_ARROW
Definition: winuser.h:682
WNDCLASSEXA WNDCLASSEX
Definition: winuser.h:5695

◆ PaintOnDC()

VOID CAppScrnshotPreview::PaintOnDC ( HDC  hdc,
int  width,
int  height,
BOOL  bDrawBkgnd 
)
private

Definition at line 635 of file appview.cpp.

636 {
637  // use an off screen dc to avoid blinking
641 
642  if (bDrawBkgnd)
643  {
644  HBRUSH hOldBrush = (HBRUSH)SelectObject(hdcMem, (HGDIOBJ)GetSysColorBrush(COLOR_BTNFACE));
645  PatBlt(hdcMem, 0, 0, width, height, PATCOPY);
646  SelectObject(hdcMem, hOldBrush);
647  }
648 
649  switch (ScrnshotPrevStauts)
650  {
651  case SCRNSHOT_PREV_EMPTY:
652  {
653 
654  }
655  break;
656 
658  {
659  Graphics graphics(hdcMem);
660  Color color(255, 0, 0);
661  SolidBrush dotBrush(Color(255, 100, 100, 100));
662 
663  graphics.SetSmoothingMode(SmoothingMode::SmoothingModeAntiAlias);
664 
665  // Paint three dot
666  float DotWidth = GetLoadingDotWidth(width, height);
667  graphics.FillEllipse((Brush *)(&dotBrush),
668  (REAL)width / 2.0 - min(width, height) * 2.0 / 16.0 - DotWidth / 2.0,
670  DotWidth,
671  DotWidth);
672 
673  graphics.FillEllipse((Brush *)(&dotBrush),
674  (REAL)width / 2.0 - DotWidth / 2.0,
675  (REAL)height / 2.0 - GetFrameDotShift(LoadingAnimationFrame, width, height) - DotWidth / 2.0,
676  DotWidth,
677  DotWidth);
678 
679  graphics.FillEllipse((Brush *)(&dotBrush),
680  (REAL)width / 2.0 + min(width, height) * 2.0 / 16.0 - DotWidth / 2.0,
682  DotWidth,
683  DotWidth);
684  }
685  break;
686 
687  case SCRNSHOT_PREV_IMAGE:
688  {
689  if (pImage)
690  {
691  // always draw entire image inside the window.
692  Graphics graphics(hdcMem);
693  float ZoomRatio = min(((float)width / (float)pImage->GetWidth()), ((float)height / (float)pImage->GetHeight()));
694  float ZoomedImgWidth = ZoomRatio * (float)pImage->GetWidth();
695  float ZoomedImgHeight = ZoomRatio * (float)pImage->GetHeight();
696 
697  graphics.DrawImage(pImage,
698  ((float)width - ZoomedImgWidth) / 2.0, ((float)height - ZoomedImgHeight) / 2.0,
699  ZoomedImgWidth, ZoomedImgHeight);
700  }
701  }
702  break;
703 
705  {
707  (width - BrokenImgSize) / 2,
708  (height - BrokenImgSize) / 2,
712  NULL,
713  NULL,
714  DI_NORMAL | DI_COMPAT);
715  }
716  break;
717  }
718 
719  // copy the content form off-screen dc to hdc
720  BitBlt(hdc, 0, 0, width, height, hdcMem, 0, 0, SRCCOPY);
721  DeleteDC(hdcMem);
723 }
GLint GLint GLsizei width
Definition: gl.h:1546
HBITMAP WINAPI CreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
SCRNSHOT_STATUS ScrnshotPrevStauts
Definition: appview.h:127
static HDC
Definition: imagelist.c:92
#define DI_COMPAT
Definition: wingdi.h:68
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1539
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
struct Color Color
UINT GetHeight()
BOOL WINAPI PatBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD)
GLuint color
Definition: glext.h:6243
float GetLoadingDotWidth(int width, int height)
Definition: appview.cpp:725
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
float GetFrameDotShift(int Frame, int width, int height)
Definition: appview.cpp:730
HDC hdc
Definition: main.c:9
#define COLOR_BTNFACE
Definition: winuser.h:918
#define DI_NORMAL
Definition: wingdi.h:72
UINT GetWidth()
int LoadingAnimationFrame
Definition: appview.h:131
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
#define PATCOPY
Definition: wingdi.h:335
BOOL WINAPI DeleteDC(_In_ HDC)
static float(__cdecl *square_half_float)(float x
#define min(a, b)
Definition: monoChain.cc:55
#define NULL
Definition: types.h:112
HICON hBrokenImgIcon
Definition: appview.h:129
static HBITMAP
Definition: button.c:44
float REAL
Definition: types.h:41
HBRUSH WINAPI GetSysColorBrush(_In_ int)
static HBITMAP hBitmap
Definition: timezone.c:26
#define LOADING_ANIMATION_FPS
Definition: appview.h:55
#define SRCCOPY
Definition: wingdi.h:333
HDC hdcMem
Definition: welcome.c:104
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

Referenced by ProcessWindowMessage().

◆ PreviousDisplayCleanup()

VOID CAppScrnshotPreview::PreviousDisplayCleanup ( )

Definition at line 769 of file appview.cpp.

770 {
771  if (bLoadingTimerOn)
772  {
775  }
777  if (pImage)
778  {
779  delete pImage;
780  pImage = NULL;
781  }
782  if (AsyncInet)
783  {
785  }
786  if (!TempImagePath.IsEmpty())
787  {
790  }
791 }
pASYNCINET AsyncInet
Definition: appview.h:133
#define TIMER_LOADING_ANIMATION
Definition: appview.h:52
#define FALSE
Definition: types.h:117
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
Definition: delete.c:39
BOOL KillTimer(UINT_PTR nIDEvent)
Definition: atlwin.h:911
PCXSTR GetString() const
Definition: atlsimpstr.h:361
BOOL AsyncInetCancel(pASYNCINET AsyncInet)
Definition: asyncinet.cpp:126
ATL::CStringW TempImagePath
Definition: appview.h:135
int LoadingAnimationFrame
Definition: appview.h:131
bool IsEmpty() const
Definition: atlsimpstr.h:379
#define NULL
Definition: types.h:112

Referenced by DisplayEmpty(), DisplayFailed(), DisplayFile(), DisplayImage(), ProcessWindowMessage(), and ~CAppScrnshotPreview().

◆ ProcessWindowMessage()

BOOL CAppScrnshotPreview::ProcessWindowMessage ( HWND  hwnd,
UINT  Msg,
WPARAM  wParam,
LPARAM  lParam,
LRESULT theResult,
DWORD  dwMapId 
)
privatevirtual

Implements ATL::CMessageMap.

Definition at line 476 of file appview.cpp.

477 {
478  theResult = 0;
479  switch (Msg)
480  {
481  case WM_CREATE:
483  break;
484  case WM_SIZE:
485  {
487  {
489 
490  if (hBrokenImgIcon)
491  {
494  }
495  }
496  break;
497  }
499  {
502  AsyncInet = NULL;
503  switch (wParam)
504  {
505  case ERROR_SUCCESS:
506  if (ContentID == DownloadParam->ID)
507  {
508  DisplayFile(DownloadParam->DownloadFileName);
509  // send a message to trigger resizing
511  InvalidateRect(0, 0);
512  TempImagePath = DownloadParam->DownloadFileName; // record tmp file path in order to delete it when cleanup
513  }
514  else
515  {
516  // the picture downloaded is already outdated. delete it.
517  DeleteFileW(DownloadParam->DownloadFileName);
518  }
519  break;
520  case ERROR_CANCELLED:
521  DeleteFileW(DownloadParam->DownloadFileName);
522  break;
523  default:
524  DisplayFailed();
525  // send a message to trigger resizing
527  InvalidateRect(0, 0);
528  DeleteFileW(DownloadParam->DownloadFileName);
529  break;
530  }
531  delete DownloadParam;
532  break;
533  }
534  case WM_PAINT:
535  {
536  PAINTSTRUCT ps;
537  HDC hdc = BeginPaint(&ps);
538  CRect rect;
540 
541  PaintOnDC(hdc,
542  rect.Width(),
543  rect.Height(),
544  ps.fErase);
545 
546  EndPaint(&ps);
547  break;
548  }
549  case WM_PRINTCLIENT:
550  {
551  if (lParam & PRF_CHECKVISIBLE)
552  {
553  if (!IsWindowVisible()) break;
554  }
555  CRect rect;
557 
559  rect.Width(),
560  rect.Height(),
562  break;
563  }
564  case WM_ERASEBKGND:
565  {
566  return TRUE; // do not erase to avoid blinking
567  }
568  case WM_TIMER:
569  {
570  switch (wParam)
571  {
575  HDC hdc = GetDC();
576  CRect rect;
578 
579  PaintOnDC(hdc,
580  rect.Width(),
581  rect.Height(),
582  TRUE);
583  ReleaseDC(hdc);
584  }
585  break;
586  }
587  case WM_DESTROY:
588  {
592  break;
593  }
594  }
595  return FALSE;
596 }
#define MAKEINTRESOURCE
Definition: winuser.h:591
pASYNCINET AsyncInet
Definition: appview.h:133
static HICON
Definition: imagelist.c:84
#define IMAGE_ICON
Definition: winuser.h:212
#define ERROR_SUCCESS
Definition: deptool.c:10
#define TRUE
Definition: types.h:120
static HDC
Definition: imagelist.c:92
#define GET_X_LPARAM(lp)
Definition: windowsx.h:274
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
void EndPaint(LPPAINTSTRUCT lpPaint)
Definition: atlwin.h:495
#define TIMER_LOADING_ANIMATION
Definition: appview.h:52
& rect
Definition: startmenu.cpp:1413
WPARAM wParam
Definition: combotst.c:138
#define WM_PRINTCLIENT
Definition: richedit.h:70
BOOL InvalidateRect(LPCRECT lpRect, BOOL bErase=TRUE)
Definition: atlwin.h:837
VOID PaintOnDC(HDC hdc, int width, int height, BOOL bDrawBkgnd)
Definition: appview.cpp:635
#define FALSE
Definition: types.h:117
BOOL GetClientRect(LPRECT lpRect) const
Definition: atlwin.h:507
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
Definition: delete.c:39
#define WM_DESTROY
Definition: winuser.h:1592
#define LOADING_ANIMATION_PERIOD
Definition: appview.h:54
#define PRF_ERASEBKGND
Definition: winuser.h:2502
HDC BeginPaint(LPPAINTSTRUCT lpPaint)
Definition: atlwin.h:297
#define WM_SIZE
Definition: winuser.h:1594
#define WM_RAPPS_DOWNLOAD_COMPLETE
Definition: appview.h:41
#define WM_TIMER
Definition: winuser.h:1725
BOOL DisplayFile(LPCWSTR lpszFileName)
Definition: appview.cpp:617
LONGLONG ContentID
Definition: appview.h:134
#define PRF_CHECKVISIBLE
Definition: winuser.h:2499
#define WM_PAINT
Definition: winuser.h:1603
HDC hdc
Definition: main.c:9
ATL::CStringW TempImagePath
Definition: appview.h:135
HWND m_hWnd
Definition: atlwin.h:268
int LoadingAnimationFrame
Definition: appview.h:131
#define BROKENIMG_ICON_SIZE
Definition: appview.h:26
int ReleaseDC(HDC hDC)
Definition: atlwin.h:1009
HINSTANCE hInst
Definition: dxdiag.c:13
VOID AsyncInetRelease(pASYNCINET AsyncInet)
Definition: asyncinet.cpp:184
#define ERROR_CANCELLED
Definition: winerror.h:726
VOID PreviousDisplayCleanup()
Definition: appview.cpp:769
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define min(a, b)
Definition: monoChain.cc:55
#define NULL
Definition: types.h:112
#define GET_Y_LPARAM(lp)
Definition: windowsx.h:275
struct @1587 Msg[]
#define WM_CREATE
Definition: winuser.h:1591
#define WM_RAPPS_RESIZE_CHILDREN
Definition: appview.h:42
#define LoadImage
Definition: winuser.h:5791
HICON hBrokenImgIcon
Definition: appview.h:129
CWindow GetParent() const
Definition: atlwin.h:654
#define WM_ERASEBKGND
Definition: winuser.h:1608
#define IDI_BROKEN_IMAGE
Definition: resource.h:17
LPARAM lParam
Definition: combotst.c:139
#define LOADING_ANIMATION_FPS
Definition: appview.h:55
HDC GetDC()
Definition: atlwin.h:513
BOOL IsWindowVisible() const
Definition: atlwin.h:893

◆ SetStatus()

VOID CAppScrnshotPreview::SetStatus ( SCRNSHOT_STATUS  Status)
private

Definition at line 630 of file appview.cpp.

631 {
633 }
SCRNSHOT_STATUS ScrnshotPrevStauts
Definition: appview.h:127
Status
Definition: gdiplustypes.h:24

Referenced by DisplayEmpty(), DisplayFailed(), DisplayFile(), and DisplayLoading().

Member Data Documentation

◆ AsyncInet

pASYNCINET CAppScrnshotPreview::AsyncInet = NULL
private

Definition at line 133 of file appview.h.

Referenced by DisplayImage(), PreviousDisplayCleanup(), and ProcessWindowMessage().

◆ bLoadingTimerOn

BOOL CAppScrnshotPreview::bLoadingTimerOn = FALSE
private

Definition at line 130 of file appview.h.

Referenced by DisplayLoading(), and PreviousDisplayCleanup().

◆ BrokenImgSize

int CAppScrnshotPreview::BrokenImgSize = BROKENIMG_ICON_SIZE
private

Definition at line 132 of file appview.h.

Referenced by PaintOnDC(), and ProcessWindowMessage().

◆ ContentID

LONGLONG CAppScrnshotPreview::ContentID = 0
private

Definition at line 134 of file appview.h.

Referenced by DisplayEmpty(), DisplayFailed(), DisplayImage(), and ProcessWindowMessage().

◆ hBrokenImgIcon

HICON CAppScrnshotPreview::hBrokenImgIcon = NULL
private

Definition at line 129 of file appview.h.

Referenced by PaintOnDC(), and ProcessWindowMessage().

◆ LoadingAnimationFrame

int CAppScrnshotPreview::LoadingAnimationFrame = 0
private

Definition at line 131 of file appview.h.

Referenced by DisplayLoading(), PaintOnDC(), PreviousDisplayCleanup(), and ProcessWindowMessage().

◆ pImage

Image* CAppScrnshotPreview::pImage = NULL
private

Definition at line 128 of file appview.h.

Referenced by DisplayFile(), GetRequestedWidth(), PaintOnDC(), and PreviousDisplayCleanup().

◆ ScrnshotPrevStauts

SCRNSHOT_STATUS CAppScrnshotPreview::ScrnshotPrevStauts = SCRNSHOT_PREV_EMPTY
private

Definition at line 127 of file appview.h.

Referenced by GetRequestedWidth(), PaintOnDC(), and SetStatus().

◆ TempImagePath

ATL::CStringW CAppScrnshotPreview::TempImagePath
private

Definition at line 135 of file appview.h.

Referenced by PreviousDisplayCleanup(), and ProcessWindowMessage().


The documentation for this class was generated from the following files: