>>445
その組み方じゃHOGEの実体が残らないんじゃないか?

// DLL
void funSub(int p1, int p2, int p3, HOGE far *pshoge) {
pshoge->a1 = ...;
pshoge->a2 = ...;
}

' VB
Declare Sub fncSub Lib "hoge.dll" (ByVal p1 As Long, ByVal p2 As Long,ByVal p3 As Long, ByRef pshoge As HOGE)

とすれば良い気がする。