 ------------------------------------------------------------------------------
	WIC Susie Plug-in		Version 2.1 Copyright (c)2013-2021 TORO
 ------------------------------------------------------------------------------

	Windows XP/2003 ȍ~gp\ WIC(Windows Imaging Component)
	gĊeɓǂݍނ߂ Susie Plug-in łB
	64bit AvP[Vp̃vOCpӂĂ܂B

	܂AWIC ŕWňȂ png `ACR(.ico)AJ[\(.cur)
	Aj[VJ[\(.ani)̓ǂݍ݂ɂΉĂ܂B

	Susie Plug-in ́A|Ðl ()̉摜[_uSusiev
	p Plug-in ŁAlXȌ`̉摜t@Cǂݍ߂悤ɂ
	߂̂̂łB
	( http://www.digitalpad.co.jp/~takechin/ )



EΉ/mF OS

	Windows 2003/XP ȍ~œ삵܂B

EWXg

	WXg͎gp܂B


WICɂ

	WIC ͕WŁABMP, PNG, ICO, JPG(JPEG), GIF, TIFF, HDP(HD Photo)
	`ɑΉĂAǉ̃R[fbNCXg[邱Ƃ
	Cӂ̌`𑝂₷Ƃł܂B
	ǉR[fbN͎ɃfW^JRAW摜p񋟂
	܂B


CXg[

	Susie Plug-in p̃fBNg iftwic.spi Rs[ĂB
	64bit AvP[V̏ꍇ́Aiftwic.sph Rs[Ă

	uFor Viewv iftwic ́A\߃AXyNg䒲ⓧ߉H
	ݒ肪ςłA\̂߂ɖ{ Plug-in gpAvP[V
	łBߏOōsAvP[V́Aɒ
	Plug-in gpĂB҂̈Ⴂ͏ݒ݂̂łB

	uARMv iftwic.spha ́AARM64 lCeBuAvP[VłB


ACXg[

	Rs[ iftwic.spi / iftwic.sph 폜ĂB


OS ȊOɕKvȃ\tgEFA

	WIC CXg[ĂKv܂BWindows Vista/2008
	ȍ~͕WŃCXg[Ă܂BWindows XP/2003 
	System32  WindowsCodecs.dll ΁AWIC CXg[
	Ă܂BȑOJĂ XP p WIC 肵ĂB


ݒƐݒ̕ۑ

	̐ݒsƂł܂B

	EJ̉](Exif)𔽉f
	@@]ɂ킹ĉ摜]܂B

	EJ[ sRGB ɒ(ᑬ)

	EICCvt@Ct摜Ȃ疄ߍ
	@@BMPv5`ǂݍ߂\tg̐ݒł

	Eߏ񂪖32bit摜24bit摜ɕϊ
	@@ߖ32bit摜AS߈ɂȂ\tgpݒł

	Epbg瓧ߏ
	@@pbgɓߏ񂪂ƈُ퓮삷\tgpݒł

	E߉摜̔wiiqɂ
	@@ߕiqɉH܂B

	EAXyNg䒲
	@@FAX摜̂悤ɃAXyNg䂪1:1łȂ摜1:1ɉH܂B

	ESusie 0.4x̃TlC\΍
	@@32bit摜TlC\łȂƂ̐ݒł

	E[Uʂɐݒۑ
	@@[Uʂ̎́A%APPDATA%\TOROID (Window Vista/7/8/10 Ȃ
	@@@C:\Users\[U\AppData\Roaming\TOROID )A
	@@@ʂ̎ iftwic.spi/sph ƓꏊA
	@@@ iftwic.cfg 쐬ĕۑ܂B

	EgpR[fbN
	@@gp\ȃR[fbNꗗłBǂݍފgqIł܂B
	@@@ IsSupported API ŃT|[gĂƕԂgqI
	@@@߂̈ꗗłAIsSupported API Ă΂ GetPicture
	@@@API gpꕔ̃AvP[Vɑ΂Ă͌ʂ܂B
	@@@܂AIR[fbNKgp킯ł͂܂B

	EȈՃy[W߂
	@@LɂƃAvœǂݍ݁^ŐV̏ɍXVs
	@@̃t[ɐ؂ւ܂BAčēǂݍ݂邱Ƃ
	@@ȈՃAj[VƂĂpł܂B


	iftwic.cfg 𒼐ڕҏW邱ƂKvȐݒ
	  iq̈ځ^ڂ̐FB݂̓O[XP[ȊO̐F͎g܂
	  X_GridColor1 = 216,216,216
	  X_GridColor2 = 224,224,224


64bit Susie Plug-in ̎dlɂ

	64bitł̐ȎdlȂ߁Â悤ȎdlɂĂ܂B
	܂Agq .sph ƂĂ܂B

	t@CTCYƎɊւ镔ƁAR[obN̒ǉ
	64bitȊO͂̂܂܂ɂȂĂ܂B

//-------------------------------------- DLL 萔
#define SUSIEERROR_NOERROR       0
#define SUSIEERROR_NOTSUPPORT   -1
#define SUSIEERROR_USERCANCEL    1
#define SUSIEERROR_UNKNOWNFORMAT 2
#define SUSIEERROR_BROKENDATA    3
#define SUSIEERROR_EMPTYMEMORY   4
#define SUSIEERROR_FAULTMEMORY   5
#define SUSIEERROR_FAULTREAD     6
#define SUSIEERROR_RESERVED      7
#define SUSIEERROR_INTERNAL      8

typedef ULONG_PTR susie_time_t;
//-------------------------------------- DLL \
#pragma pack(push, 1)
typedef struct PictureInfo{
    long    left, top;	// 摜WJʒu
    long    width;	// 摜̕(pixel)
    long    height;	// 摜̍(pixel)
    WORD    x_density;	// f̐x
    WORD    y_density;	// f̐x
    short   colorDepth;	// Pfbit
    #ifdef _WIN64
      char  dummy[2]; // ACg
    #endif
    HLOCAL  hInfo;	// 摜̃eLXg
} SUSIE_PICTUREINFO;

typedef struct {
    unsigned char  method[8];	// k@̎
    ULONG_PTR      position;	// t@Cł̈ʒu
    ULONG_PTR      compsize;	// kꂽTCY
    ULONG_PTR      filesize;	// ̃t@CTCY
    susie_time_t   timestamp;	// t@C̍XV
    char           path[200];	// ΃pX
    char           filename[200];	// t@C
    unsigned long  crc;	// CRC
    #ifdef _WIN64
       // 64bitł̍\̃TCY444bytesłAۂ̃TCY
       // ACgɂ448bytesɂȂ܂BɂdummyKvłB
       char        dummy[4];
    #endif
} SUSIE_FINFO;

typedef struct {
    unsigned char  method[8];	// k@̎
    ULONG_PTR      position;	// t@Cł̈ʒu
    ULONG_PTR      compsize;	// kꂽTCY
    ULONG_PTR      filesize;	// ̃t@CTCY
    susie_time_t   timestamp;	// t@C̍XV
    WCHAR          path[200];	// ΃pX
    WCHAR          filename[200];	// t@Cl[
    unsigned long  crc;		// CRC
}SUSIE_FINFOW;
#pragma pack(pop)

// R[obN
typedef int (__stdcall *SUSIE_PROGRESS)(int nNum, int nDenom, LONG_PTR lData);

//-------------------------------------- DLL ֐(UNICODE(`W)܂)
int __stdcall GetPluginInfo(int infono, LPSTR buf, int buflen);
int __stdcall GetPluginInfoW(int infono, LPWSTR buf, int buflen);
int __stdcall IsSupported(LPCSTR filename, void *dw);
int __stdcall IsSupportedW(LPCWSTR filename, void *dw);
int __stdcall ConfigurationDlg(HWND hWnd, int function);
int __stdcall GetPictureInfo(LPCSTR buf, LONG_PTR len, unsigned int flag, struct PictureInfo *lpInfo);
int __stdcall GetPictureInfoW(LPCWSTR buf, LONG_PTR len, unsigned int flag, struct PictureInfo *lpInfo);
int __stdcall GetPicture(LPCSTR buf, LONG_PTR len, unsigned int flag, HANDLE *pHBInfo, HANDLE *pHBm, SUSIE_PROGRESS lpPrgressCallback, LONG_PTR lData);
int __stdcall GetPictureW(LPCWSTR buf, LONG_PTR len, unsigned int flag, HANDLE *pHBInfo, HANDLE *pHBm, SUSIE_PROGRESS lpPrgressCallback, LONG_PTR lData);
int __stdcall GetPreview(LPCSTR buf, LONG_PTR len, unsigned int flag, HANDLE *pHBInfo, HANDLE *pHBm, SUSIE_PROGRESS lpPrgressCallback, LONG_PTR lData);
int __stdcall GetPreviewW(LPCWSTR buf, LONG_PTR len, unsigned int flag, HANDLE *pHBInfo, HANDLE *pHBm, SUSIE_PROGRESS lpPrgressCallback, LONG_PTR lData);
int __stdcall GetArchiveInfo(LPCSTR buf, LONG_PTR len, unsigned int flag, HLOCAL *lphInf);
int __stdcall GetFile(LPCSTR src, LONG_PTR len, LPSTR dest, unsigned int flag, SUSIE_PROGRESS prgressCallback, LONG_PTR lData);
int __stdcall GetFileInfo(LPCSTR buf, LONG_PTR len, LPCSTR filename, unsigned int flag, SUSIE_FINFO *lpInfo);
int __stdcall CreatePicture(LPCSTR filepath, unsigned int flag, HANDLE *pHBInfo, HANDLE *pHBm, struct PictureInfo *lpInfo, SUSIE_PROGRESS progressCallback, LONG_PTR lData); // filepath ̊gqŕۑ`

// DLL Iǂݍݗp
typedef int (__stdcall *GETPLUGININFO)(int infono, LPSTR buf, int buflen);
typedef int (__stdcall *GETPLUGININFOW)(int infono, LPWSTR buf, int buflen);
typedef int (__stdcall *ISSUPPORTED)(LPCSTR filename, void *dw);
typedef int (__stdcall *ISSUPPORTEDW)(LPCWSTR filename, void *dw);
typedef int (__stdcall *CONFIGURATIONDLG)(HWND hWnd, int function);
typedef int (__stdcall *GETPICTUREINFO)(LPCSTR buf, LONG_PTR len, unsigned int flag, struct PictureInfo *lpInfo);
typedef int (__stdcall *GETPICTUREINFOW)(LPCWSTR buf, LONG_PTR len, unsigned int flag, struct PictureInfo *lpInfo);
typedef int (__stdcall *GETPICTURE)(LPCSTR buf, LONG_PTR len, unsigned int flag, HANDLE *pHBInfo, HANDLE *pHBm, SUSIE_PROGRESS lpPrgressCallback, LONG_PTR lData);
typedef int (__stdcall *GETPICTUREW)(LPCWSTR buf, LONG_PTR len, unsigned int flag, HANDLE *pHBInfo, HANDLE *pHBm, SUSIE_PROGRESS lpPrgressCallback, LONG_PTR lData);
typedef int (__stdcall *GETPREVIEW)(LPCSTR buf, LONG_PTR len, unsigned int flag, HANDLE *pHBInfo, HANDLE *pHBm, SUSIE_PROGRESS lpPrgressCallback, LONG_PTR lData);
typedef int (__stdcall *GETPREVIEWW)(LPCWSTR buf, LONG_PTR len, unsigned int flag, HANDLE *pHBInfo, HANDLE *pHBm, SUSIE_PROGRESS lpPrgressCallback, LONG_PTR lData);
typedef int (__stdcall *GETARCHIVEINFO)(LPCSTR buf, LONG_PTR len, unsigned int flag, HLOCAL *lphInf);
typedef int (__stdcall *GETARCHIVEINFOW)(LPCWSTR buf, LONG_PTR len, unsigned int flag, HLOCAL *lphInf);
typedef int (__stdcall *GETFILE)(LPCSTR src, LONG_PTR len, LPSTR dest, unsigned int flag, SUSIE_PROGRESS prgressCallback, LONG_PTR lData);
typedef int (__stdcall *GETFILEW)(LPCWSTR src, LONG_PTR len, LPWSTR dest, unsigned int flag, FARPROC prgressCallback, LONG_PTR lData);
typedef int (__stdcall *GETFILEINFO)(LPCSTR buf, LONG_PTR len, LPCSTR filename, unsigned int flag, SUSIE_FINFO *lpInfo);
typedef int (__stdcall *GETFILEINFOW)(LPCWSTR buf, LONG_PTR len, LPCWSTR filename, unsigned int flag, SUSIE_FINFOW *lpInfo);


Ō

	Ẽ\tgEFA̓t[\tgEFAłB쌠́uTOROvA
	  u ǘavɂ܂B

	Ẽ\tgEFAgpɂ闘vEQ́Ał
	  ؐӔC𕉂܂B

	E]ڂ͎Rɍs܂B
	  {\tgEFAƂȂcړIł̔zzEgp͂ɘAB

	EVisual Studio 2008 ō\zĂ܂B
	  ARM64ł́AVisual Studio 2019 pč\zĂ܂B

	E\[XYtĂ܂BlŎgp͈͂łΎRɉς
	  邱Ƃł܂BAvWFNgt@CYtĂ܂A
	  zzt@C̍\zɂ͎gpĂ炸AmakefilegpĂ܂B



Version 2.1	2022/09/18
E\tgɂĂ͐ݒ̓ǂݍ݂ɎsC

Version 2.0	2021/11/28
EƎAPIǉɔ\̕ύX
EȈՃy[W߂ݒ(ǂݍނтɎ̃t[)ǉ
E߈ɂ摜`ǉ
E߉摜̔wiiqɂƂA32bit摜24bit摜ɕϊłȂ̂C
E߉摜̔wiiqɂƂ̊iq̐Fw\(IFTWIC.CFGڕύX)

Version 1.9	2020/03/08
E\\tgݒ Plug-in  for View tH_ɗpӂ
EߏAAXyNg䒲 Plug-in ōsݒǉ
EgpR[fbNꗗɃR[fbN̏\悤ɂ
EARM64 ł

Version 1.8	2018/06/17
Epng`ACR(.ico)Aj[VJ[\(.ani)̓ǂݍ݂ɓƎΉ

Version 1.7	2018/03/03
E2bitFGray PNG̓ǂݍ݂ɎŝC
EGetPictureInfo 

Version 1.6	2017/11/25
E}`XbhŎgpꍇ̒s

Version 1.5	2017/07/14
Eߖ32bit摜łLƂĈAS߂Ă܂\tĝ߂̐ݒǉ
Eݒ_CAÕtHgށETCYWindows擾悤ɂ

Version 1.4	2017/01/14
EVersion1.3ŁAICCvt@C+pbgt摜̓WJɎsĂ̂C

Version 1.3	2016/08/27
EICCvt@Ct摜ȂICCvt@CtWJݒǉ(vΉ\tg)

Version 1.2	2015/07/11
EIsSupported,GetPictureInfo ̏𒲐
E2bitFPNG̓ǂݍ݂ɎŝC

Version 1.1	2014/01/18
EgpR[fbNݒ_CAOŎwł悤ɂ
EGetPictureInfo Ń_~[ԂƂŁAHamanaŕ\ł悤ɂ
ESusie 3.x̃J^O\32bit摜ɑΉĂȂɑΉݒǉ

Version 1.0	2013/05/11
ECreatePictureǉ

Version 0.3	2013/04/13
Eݒ_CAOǉ
EJ[vt@Ctt@CȂAsRGB ɕϊݒǉ
EExifɂ]␳ݒǉ
EGetPreviewɂTlC摜擾ł悤ɂ(TIFF/JPEG/WDP)

Version 0.2	2013/04/02
E8bit color̉摜𐳂Ȃ̂C

Version 0.1	2013/03/30
E

A^ꎟzz						TORO^ ǘa

E-mail	toroid.jp@gmail.com	ghe00667@nifty.com
WWW	http://toro.d.dooo.jp/
