If the InfoPathControl::Uninit, InfoPathControl::SaveState and InfoPathControl::Enable implementations are getting called, I would suspect a problem with the InfoPathControl interface definition. Are you importing the declaration, or using a hand roled definition of the interface?
If you've hand crafted it, please post you code.
Jim Cantwell
InfoPathDev
Jim Cantwell
InfoPathDev - Redmond