いろいろ、GGしましたか?
こちらです。
Kpanさんからもらいました。
// ActiveDesktopインターフェイスによる壁紙の変更 (By Kpan)
#define CLSID_ActiveDesktop "{75048700-EF1F-11D0-9888-006097DEACF9}"
#define IID_IActiveDesktop "{F490EB00-1240-11D1-9888-006097DEACF9}"
#usecom IActiveDesktop IID_IActiveDesktop CLSID_ActiveDesktop
#comfunc IActiveDesktop_ApplyChanges 3 int
#comfunc IActiveDesktop_SetWallpaper 5 wstr, int
#comfunc IActiveDesktop_SetWallpaperOptions 7 int, int
; 壁紙の表示位置
#enum WPSTYLE_CENTER = 0 // 中央に表示
#enum WPSTYLE_TILE // 並べて表示
#enum WPSTYLE_STRETCH // 拡大して表示
onexit *exit
newcom adesktop, CLSID_ActiveDesktop
sdim filepath, 256
input filepath, 400, 22
objsize 20, 22
pos 400, 0
button "...", *setpath
pos 200, 40
objsize 80, 22
button "適用", *setwallpaper
stop
*setpath
dialog "bmp;*.gif;*.jpg;*.png;*.htm;*.html", 16, "背景ファイル"
if stat = 0 : stop
filepath = refstr
objprm 0, filepath
stop
*setwallpaper
; 壁紙ファイルの指定 (第2パラにファイルパス、空文字だと壁紙「なし」)
IActiveDesktop_SetWallpaper adesktop, filepath
; WALLPAPEROPT構造体 (要素1に表示位置)
WALLPAPEROPT = 8, WPSTYLE_TILE
; 壁紙オプションの指定
IActiveDesktop_SetWallpaperOptions adesktop, varptr(WALLPAPEROPT)
; 変更の反映
IActiveDesktop_ApplyChanges adesktop, 7
mes "done."
stop
*exit
delcom adesktop
end