CreoPluging9.0/dllmain.cpp

59 lines
1.5 KiB
C++

// 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<pfcActionListener*>(static_cast<pfcUICommandAccessListener*>(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) {
}