HSPでマクロに引数を使うときは少し工夫しないとおかしくなります
例ですが、
#define pos2(%1, %2) pos %1*2, %2*2
としたときに
pos2 10+5, 20*5
などとすると
pos 10+5*2, 20+5*2
と展開され期待していたpos 30, 200ではなくpos 20, 30になってしまいます
少々面倒で効率も良くないですが
#define pos2(%1, %2) pos (%1)*2, (%2)*2
とする必要があります
さてHSP3dpiですが、一部命令が指定された値の2倍のサイズになる以外に特に意味がわかりません…
WindowsのHigh DPIは100〜350%の範囲がありますが、200%だけに対応してもなぁという感想です。
また現在のDPIも取得していないので拡大のしていない100%の環境でも問答無用で2倍になります。