ReactOS 0.4.15-dev-7846-g8ba6c66
shimgvw.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Picture and Fax Viewer
3 * LICENSE: GPL-2.0 (https://spdx.org/licenses/GPL-2.0)
4 * PURPOSE: Image file browsing and manipulation
5 * COPYRIGHT: Copyright Dmitry Chapyshev (dmitry@reactos.org)
6 * Copyright 2018-2023 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
7 */
8
9#pragma once
10
11#define WIN32_NO_STATUS
12#define _INC_WINDOWS
13#define COM_NO_WINDOWS_H
14#define INITGUID
15
16#include <windef.h>
17#include <winbase.h>
18#include <winnls.h>
19#include <winreg.h>
20#include <wingdi.h>
21#include <wincon.h>
22#include <objbase.h>
23#include <gdiplus.h>
24#include <shlwapi.h>
25#include <strsafe.h>
26
27#include <debug.h>
28
29#include "resource.h"
30
32extern GpImage *g_pImage;
33
34typedef struct
35{
42
43typedef struct tagSHIMGVW_FILENODE
44{
49
50#define WC_PREVIEW L"ShImgVw:CPreviewWnd"
51#define WC_ZOOM L"ShImgVw:CZoomWnd"
52
53/* Animation */
54typedef struct tagANIME
55{
63
64void Anime_FreeInfo(PANIME pAnime);
66void Anime_SetTimerWnd(PANIME pAnime, HWND hwndTimer);
67void Anime_SetFrameIndex(PANIME pAnime, UINT nFrameIndex);
68void Anime_Start(PANIME pAnime, DWORD dwDelay);
69void Anime_Pause(PANIME pAnime);
71
72static inline LPVOID QuickAlloc(SIZE_T cbSize, BOOL bZero)
73{
74 return HeapAlloc(GetProcessHeap(), (bZero ? HEAP_ZERO_MEMORY : 0), cbSize);
75}
76
77static inline VOID QuickFree(LPVOID ptr)
78{
80}
WPARAM wParam
Definition: combotst.c:138
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define MAX_PATH
Definition: compat.h:34
#define HeapFree(x, y, z)
Definition: compat.h:735
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
static PVOID ptr
Definition: dispmode.c:27
unsigned int UINT
Definition: ndis.h:50
BOOL Anime_LoadInfo(PANIME pAnime)
Definition: anime.c:89
void Anime_Start(PANIME pAnime, DWORD dwDelay)
Definition: anime.c:35
static LPVOID QuickAlloc(SIZE_T cbSize, BOOL bZero)
Definition: shimgvw.h:72
static VOID QuickFree(LPVOID ptr)
Definition: shimgvw.h:77
struct tagSHIMGVW_FILENODE SHIMGVW_FILENODE
BOOL Anime_OnTimer(PANIME pAnime, WPARAM wParam)
Definition: anime.c:76
void Anime_SetTimerWnd(PANIME pAnime, HWND hwndTimer)
Definition: anime.c:25
struct tagANIME ANIME
HINSTANCE g_hInstance
Definition: MainWindow.cpp:18
struct tagANIME * PANIME
void Anime_FreeInfo(PANIME pAnime)
Definition: anime.c:12
void Anime_Pause(PANIME pAnime)
Definition: anime.c:30
void Anime_SetFrameIndex(PANIME pAnime, UINT nFrameIndex)
Definition: anime.c:144
GpImage * g_pImage
Definition: shimgvw.c:28
BOOL Maximized
Definition: shimgvw.h:36
UINT m_nLoopCount
Definition: shimgvw.h:59
UINT m_nFrameIndex
Definition: shimgvw.h:56
HWND m_hwndTimer
Definition: shimgvw.h:61
UINT m_nLoopIndex
Definition: shimgvw.h:58
PropertyItem * m_pDelayItem
Definition: shimgvw.h:60
UINT m_nFrameCount
Definition: shimgvw.h:57
struct tagSHIMGVW_FILENODE * Next
Definition: shimgvw.h:47
struct tagSHIMGVW_FILENODE * Prev
Definition: shimgvw.h:46
ULONG_PTR SIZE_T
Definition: typedefs.h:80
int32_t INT
Definition: typedefs.h:58
UINT_PTR WPARAM
Definition: windef.h:207
__wchar_t WCHAR
Definition: xmlstorage.h:180