Я немного не правильно выразился. Зависимость не от разрешения экрана, а от dpi выставленного видеорежима.
Ширина/высота картинки возвращается в так называемых хайметриках (HiMetric), где 1 Hm = 1/1000 см. Как известно 1 дюйм (inch) = приблизительно 2.54 см = 2540 Hm. Стандартно видеорежим выставлен в 96 dpi (вне зависимости от разрешения).
Тогда получается что формула преобразования в пикселы будет
Может потребоваться округление до целого, но это зависит только от точности преобразования дюймов в сантиметры (2.54...).
Конечно может показаться что это всё какие-то извраты, но не забывай что система в принципе разрабатывалась и ориентировалась не на простую работу с изображениями, а ещё и для печати на бумаге, а оттуда и следуют все эти полиграфические заморочки.
Вообще на VB для этого есть функции типа ScaleX(p.Width, vbHimetric, vbPixels), но не знаю, будут ли они работать в WSH.