/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.eas.opc.da.dcom; import java.util.logging.Logger; import org.jinterop.dcom.core.JIFlags; import org.jinterop.dcom.core.JILocalCoClass; import org.jinterop.dcom.core.JILocalInterfaceDefinition; import org.jinterop.dcom.core.JILocalMethodDescriptor; import org.jinterop.dcom.core.JILocalParamsDescriptor; import org.jinterop.dcom.core.JIString; /** * * @author pk */ public class OPCShutdownImpl { final static String IID_IOPCShutdown = "f31dfde1-07b6-11d2-b2d8-0060083ba1fb"; private OPCShutdownListener listener; private JILocalCoClass localClass; OPCShutdownImpl(OPCShutdownListener listener) { this.listener = listener; createCoClass(); } JILocalCoClass getLocalClass() { return localClass; } private void createCoClass() { localClass = new JILocalCoClass(new JILocalInterfaceDefinition(IID_IOPCShutdown, false), this, false); JILocalParamsDescriptor shutdownParams = new JILocalParamsDescriptor(); shutdownParams.addInParamAsObject(JIString.class, JIFlags.FLAG_REPRESENTATION_STRING_LPWSTR); JILocalMethodDescriptor shutdownDesc = new JILocalMethodDescriptor("ShutdownRequest", 0, shutdownParams); localClass.getInterfaceDefinition().addMethodDescriptor(shutdownDesc); } public void ShutdownRequest(JIString reason) { Logger.getLogger(OPCShutdownImpl.class.getName()).finest("ShutdownRequest, reason=" + reason); listener.shutdownRequested(reason.getString()); } }