7 //-------------------------------------------------------------------------
8 // Function declarations
10 signed int tjsf_setwallpaper(int a1
, int a2
, int a3
, int a4
, int a5
, signed int a6
, int *a7
);
11 // signed int tjsf_getwallpaper(int a1, int a2, int a3, int a4, int a5, int a6);
12 int sub_10001E40(void *this, int a2
, int a3
);
13 // int sub_10001F00(int a1, int a2, int a3, ...);
14 // int sub_10001FC0(int a1, int a2, ...);
15 // int sub_10002080(int a1, int a2, ...);
16 // int sub_10002140(int a1, int a2, ...);
18 //-------------------------------------------------------------------------
21 IID rclsid
= { 1963230976u, 61215u, 4560u, { 152u, 136u, 0u, 96u, 151u, 222u, 172u, 249u } }; // idb
22 //75048700-EF1F-11D0-9888-006097DEACF9: UserAssist
23 IID riid
= { 4103138048u, 4672u, 4561u, { 152u, 136u, 0u, 96u, 151u, 222u, 172u, 249u } }; // idb
24 //F490EB00-1240-11D1-9888-006097DEACF9: IActiveDesktop
25 int dword_1000A038
= 3; // weak
26 wchar_t *off_1000A03C
[3] = { L
".bmp", L
".png", L
".jpg" }; // weak
27 BYTE a2
[] = { 50u, 0u }; // idb
28 BYTE Data
[] = { 49u, 0u }; // idb
29 char byte_1000D2B4
= '\0'; // weak
31 //----- (10001200) --------------------------------------------------------
32 signed int tjsf_setwallpaper(int this, int flag
, int membername
, int hint
, int result
, signed int numparams
, int *param
)
48 const BYTE
*v74
; // eax
49 const BYTE
*v75
; // eax
52 LPVOID ppv
; // [esp+A8h] [ebp-44Ch]
53 char v83
; // [esp+ACh] [ebp-448h]
54 char v84
; // [esp+B0h] [ebp-444h]
55 HKEY phkResult
; // [esp+B4h] [ebp-440h]
56 int v86
; // [esp+B8h] [ebp-43Ch]
57 char v87
; // [esp+BCh] [ebp-438h]
58 char v88
; // [esp+C0h] [ebp-434h]
59 char v89
; // [esp+C4h] [ebp-430h]
60 char v92
; // [esp+D0h] [ebp-424h]
61 char v93
; // [esp+DCh] [ebp-418h]
62 char v94
; // [esp+E0h] [ebp-414h]
63 char v95
; // [esp+E4h] [ebp-410h]
64 CHAR String
; // [esp+E8h] [ebp-40Ch]
65 char v97
; // [esp+E9h] [ebp-40Bh]
68 return TJS_E_MEMBERNOTFOUND
;
70 return TJS_E_BADPARAMCOUNT
;
71 ("tTJSVariant::tTJSVariant()")(&v92
);
72 if ( ("tTJSVariantType tTJSVariant::Type()")(param
[0]) == 1 )
74 v13
= ("iTJSDispatch2 * tTJSVariant::AsObjectNoAddRef() const")(param
[0]);
75 if ( !FIND_AND_GET_MEMBER(L
"storage", v13
, &v92
) )
77 ("void ::TVPThrowExceptionMessage(const tjs_char *)")(L
"storage(設定する壁紙)が指定されていないよ。\n壁紙を消すときは「storage=\"\"」って指定してね。");
78 ("tTJSVariant::~ tTJSVariant()")(&v92
);
79 return TJS_E_INVALIDPARAM
;
81 if ( ("tTJSVariantType tTJSVariant::Type()")(&v92
) != 2 )
83 ("void ::TVPThrowExceptionMessage(const tjs_char *)")(L
"storageが文字列じゃないよ。");
84 ("tTJSVariant::~ tTJSVariant()")(&v92
);
85 return TJS_E_INVALIDPARAM
;
87 ("tTJSVariant::tTJSVariant()")(&v89
);
88 if ( !FIND_AND_GET_MEMBER(L
"tile", v13
, &v89
) )
90 v23
= ("tTVInteger tTJSVariant::AsInteger() const")(&v89
);
95 if ( !FIND_AND_GET_MEMBER(L
"magnify", v13
, &v89
) )
97 v25
= ("tTVInteger tTJSVariant::AsInteger() const")(&v89
);
102 ("tTJSVariant::~ tTJSVariant()")(&v89
);
106 if ( ("tTJSVariantType tTJSVariant::Type()")(param
[0]) != 2 )
108 ("void ::TVPThrowExceptionMessage(const tjs_char *)")(L
"storage");
109 ("tTJSVariant::~ tTJSVariant()")(&v92
);
110 return TJS_E_INVALIDPARAM
;
112 ("tTJSVariant & tTJSVariant::operator =(const tTJSVariant &)")(&v92
, param
[0]);
115 if ( ("tTJSVariantType tTJSVariant::Type()")(param
[1]) != 4 )
117 LODWORD(v38
) = ("tTVInteger tTJSVariant::AsInteger() const")(param
[1]);
126 if ( ("tTJSVariantType tTJSVariant::Type()")(param
[1]) != 4 )
128 LODWORD(v44
) = ("tTVInteger tTJSVariant::AsInteger() const")(param
[2]);
136 String
= byte_1000D2B4
;
137 memset(&v97
, 0, 0x3FCu
);
138 v48
= ("tTJSVariantString * tTJSVariant::AsString() const")(&v92
);
139 // Find wallpaper if extension
141 ("tTJSString::tTJSString(tTJSVariantString *)")(&v93
, v48
);
142 sub_10001FC0(v48
, (int)&v88
, &v93
);
143 ("tTJSString::~ tTJSString()")(&v93
);
144 if ( ("tjs_int tTJSString::length() const")(&v88
) > 0 )
146 ("void tTJSString::ToLowerCase()")(&v88
);
147 if ( dword_1000A038
- 1 >= 0 )
149 for (v46
= 0; i
< dword_1000A038
; v46
+= 1)
151 if ( ("bool tTJSString::operator ==(const tjs_char *) const")(&v88
, off_1000A03C
[v46
]) )
156 v57
= (int *)("tTJSVariantString * tTJSVariant::AsString() const")(&v92
);
157 ("tTJSString::tTJSString(tTJSVariantString *)")(&v94
, v57
);
158 sub_10002080((int)v57
, (int)&v95
, &v94
);
159 ("tTJSString::~ tTJSString()")(&v94
);
160 ("tTJSString::tTJSString(const tjs_char *)")(&v83
, L
"\0");
161 if ( v46
< dword_1000A038
)
163 v57
= (int *)&off_1000A03C
[v46
];
166 sub_10001E40(&v95
, (int)&v87
, *v57
);
167 if ( ("bool ::TVPIsExistentStorage(const ttstr &)")(&v87
) )
169 ("tTJSString::~ tTJSString()")(&v87
);
172 if ( v46
>= dword_1000A038
)
175 v63
= sub_10002140((int)v57
, (int)&v84
, &v87
);
176 ("tTJSString & tTJSString::operator =(const tTJSString &)")(&v83
, v63
);
177 ("tTJSString::~ tTJSString()")(&v84
);
178 ("void ::TVPGetLocalName(ttstr &)")(&v83
);
179 v57
= (int *)("tjs_int tTJSString::GetNarrowStrLen() const")(&v83
);
180 ("void tTJSString::ToNarrowStr(tjs_nchar *,tjs_int) const")(&v83
, &String
, v57
);
181 ("tTJSString::~ tTJSString()")(&v87
);
184 v70
= sub_10001F00((int)v57
, (int)&v84
, (int)L
"search result: ", &v83
);
185 ("void ::TVPAddLog(const ttstr &)")(v70
);
186 ("tTJSString::~ tTJSString()")(&v84
);
187 RegOpenKeyA(HKEY_CURRENT_USER
, "Control Panel\\desktop\\", &phkResult
);
188 v73
= lstrlenA(&String
);
189 RegSetValueExA(phkResult
, "Wallpaper", 0, 1u, (const BYTE
*)&String
, v73
+ 1);
192 v74
= (const BYTE
*)"0";
193 RegSetValueExA(phkResult
, "TileWallpaper", 0, 1u, v74
, 4u);
196 v75
= (const BYTE
*)"0";
197 RegSetValueExA(phkResult
, "WallpaperStyle", 0, 1u, v75
, 4u);
198 RegCloseKey(phkResult
);
199 SystemParametersInfoA(0x14u
, 0, &String
, 3u);
202 if ( ("bool tTJSString::operator !=(const tjs_char *) const")(&v83
, L
"\0") )
205 if ( CoCreateInstance(&rclsid
, 0, 1u, &riid
, &ppv
) >= 0 )
207 *(_DWORD
*)&v89
= 12;
208 if ( (*(int (__stdcall
**)(LPVOID
, char *, _DWORD
))(*(_DWORD
*)ppv
+ 44))(ppv
, &v89
, 0) >= 0 )
209 (*(void (__stdcall
**)(LPVOID
, signed int))(*(_DWORD
*)ppv
+ 12))(ppv
, 7);
210 (*(void (__stdcall
**)(LPVOID
))(*(_DWORD
*)ppv
+ 8))(ppv
);
211 } //IActiveDesktop->ApplyChanges()
217 ("tTJSVariant & tTJSVariant::operator =(const tjs_char *)")(result
, L
"success");
219 v78
= (void *)sub_10001F00(result
, (int)&ppv
, (int)L
"setwallpaper(", &v83
);
220 v79
= sub_10001E40(v78
, (int)&v84
, (int)L
") succeeded.");
221 ("void ::TVPAddLog(const ttstr &)")(v79
);
222 ("tTJSString::~ tTJSString()")(&v84
);
223 ("tTJSString::~ tTJSString()")(&ppv
);
224 ("tTJSString::~ tTJSString()")(&v83
);
225 ("tTJSString::~ tTJSString()")(&v95
);
226 ("tTJSString::~ tTJSString()")(&v88
);
227 ("tTJSVariant::~ tTJSVariant()")(&v92
);
231 //----- (10001C40) --------------------------------------------------------
232 signed int tjsf_getwallpaper(int a1
, int this, int flag
, int membername
, int hint
, int result
)
234 HKEY phkResult
; // [esp+0h] [ebp-408h]
235 DWORD cbData
; // [esp+4h] [ebp-404h]
236 BYTE Data
; // [esp+8h] [ebp-400h]
237 char v11
; // [esp+9h] [ebp-3FFh]
240 return TJS_E_MEMBERNOTFOUND
;
243 Data
= byte_1000D2B4
;
244 memset(&v11
, 0, 0x3FCu
);
246 RegOpenKeyA(HKEY_CURRENT_USER
, "Control Panel\\desktop\\", &phkResult
);
247 RegQueryValueExA(phkResult
, "Wallpaper", 0, 0, &Data
, &cbData
);
248 RegCloseKey(phkResult
);
249 ("tTJSVariant & tTJSVariant::operator =(const tjs_nchar *)")(result
, &Data
);
254 //----- (10001E40) --------------------------------------------------------
255 int sub_10001E40(void *this, int a2
, int a3
)
261 v5
= ("tTJSString tTJSString::operator +(const tjs_char *) const")(&a3
, v4
, a3
);
262 ("tTJSString::tTJSString(const tTJSString &)")(a2
, v5
);
263 ("tTJSString::~ tTJSString()")(&a3
);
267 //----- (10001F00) --------------------------------------------------------
268 int sub_10001F00(int a1
, int a2
, int a3
, ...)
271 int v10
; // [esp+1Ch] [ebp+Ch]
272 va_list va
; // [esp+1Ch] [ebp+Ch]
273 va_list va1
; // [esp+20h] [ebp+10h]
277 v10
= va_arg(va1
, _DWORD
);
278 v4
= ("tTJSString ::operator +(const tjs_char *,const tTJSString &)")((int *)va
, a3
, v10
, a1
);
279 ("tTJSString::tTJSString(const tTJSString &)")(a3
, v4
);
280 ("tTJSString::~ tTJSString()")(va1
, v8
, 1);
284 //----- (10001FC0) --------------------------------------------------------
285 int sub_10001FC0(int a1
, int a2
, ...)
289 int v11
; // [esp+18h] [ebp+8h]
290 va_list va
; // [esp+18h] [ebp+8h]
291 va_list va1
; // [esp+1Ch] [ebp+Ch]
295 v11
= va_arg(va1
, _DWORD
);
296 v3
= ("ttstr ::TVPExtractStorageExt(const ttstr &)")((int *)va
, v11
, a1
);
298 ("tTJSString::tTJSString(const tTJSString &)")(v11
, v3
);
299 ("tTJSString::~ tTJSString()")(va1
, 0, 1);
303 //----- (10002080) --------------------------------------------------------
304 int sub_10002080(int a1
, int a2
, ...)
308 int v11
; // [esp+18h] [ebp+8h]
309 va_list va
; // [esp+18h] [ebp+8h]
310 va_list va1
; // [esp+1Ch] [ebp+Ch]
314 v11
= va_arg(va1
, _DWORD
);
315 v3
= ("ttstr ::TVPChopStorageExt(const ttstr &)")((int *)va
, v11
, a1
);
317 ("tTJSString::tTJSString(const tTJSString &)")(v11
, v3
);
318 ("tTJSString::~ tTJSString()")(va1
, 0, 1);
322 //----- (10002140) --------------------------------------------------------
323 int sub_10002140(int a1
, int a2
, ...)
327 int v11
; // [esp+18h] [ebp+8h]
328 va_list va
; // [esp+18h] [ebp+8h]
329 va_list va1
; // [esp+1Ch] [ebp+Ch]
333 v11
= va_arg(va1
, _DWORD
);
334 v3
= ("ttstr ::TVPGetPlacedPath(const ttstr &)")((int *)va
, v11
, a1
);
336 ("tTJSString::tTJSString(const tTJSString &)")(v11
, v3
);
337 ("tTJSString::~ tTJSString()")(va1
, 0, 1);