// dllmain.cpp #include "pch.h" #include "ShrinkwrapCommand.h" #include "CreoOtk.h" namespace { class ShrinkwrapAccessListener : public pfcUICommandAccessListener { public: pfcCommandAccess OnCommandAccess(xbool allow_error_messages) override { (void)allow_error_messages; // 暂时总是返回可用,方便测试 return pfcACCESS_AVAILABLE; } }; } // namespace BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } #pragma warning(push) #pragma warning(disable : 4716) extern "C" __declspec(dllexport) int user_initialize(void) { try { pfcSession_ptr session = pfcGetProESession(); if (!session) return 0; pfcUICommandActionListener_ptr action = new ShrinkwrapActionListener(); pfcUICommand_ptr cmd = session->UICreateCommand("TellmeCreoPlugingCmd", action); if (!cmd) return 0; pfcUICommandAccessListener_ptr access = new ShrinkwrapAccessListener(); pfcActionListener_ptr access_as_action( static_cast(static_cast(access)) ); cmd->AddActionListener(access_as_action); cmd->Designate("shrinkwrap_msg.txt", "LightExport", "LightExport Help", "LightExport Description"); } catch (...) { } return 0; } #pragma warning(pop) extern "C" __declspec(dllexport) void user_terminate(void) { }