I don't know Delphi, but I think your third parameter is incorrect, it should be the address of a pointer, and I think you have the address of a variable. In C/C++ it would be:
IStillImageW* pStill_Image;
hRes = StiCreateInstance(GetModuleHandle(NULL), STI_VERSION, &pStill_Image, NULL);
which would be something like this in Delphi:
pStill_Image: PIStillImageW; // no idea if this is correct syntax
H_Res := StiCreateInstanceW(GetModuleHandle(nil), STI_VERSION, @pStill_Image, nil);
NB there is also a Delphi forum just above this one; see the Treeview at left.
Veni, vidi, abiit domum