]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/modules.h
Remove SpanningTreeProtocolInterface::SendOperNotice - it was translated to a SendSNO...
[user/henk/code/inspircd.git] / include / modules.h
index abc783ca9e5e7e1dd6ffd0701e6d0414bb5a95c5..ef2e4b0e46cbd8981e5d7ea2b34bac1d100e0d51 100644 (file)
@@ -545,9 +545,10 @@ class CoreExport Module : public Extensible
         * @param cname The channel name being joined. For new channels this is valid where chan is not.
         * @param privs A string containing the users privilages when joining the channel. For new channels this will contain "@".
         * You may alter this string to alter the user's modes on the channel.
+        * @param keygiven The key given to join the channel, or an empty string if none was provided
         * @return 1 To prevent the join, 0 to allow it.
         */
-       virtual int OnUserPreJoin(User* user, Channel* chan, const char* cname, std::string &privs);
+       virtual int OnUserPreJoin(User* user, Channel* chan, const char* cname, std::string &privs, const std::string &keygiven);
        
        /** Called whenever a user is about to be kicked.
         * Returning a value of 1 from this function stops the process immediately, causing no
@@ -1126,7 +1127,8 @@ class CoreExport Module : public Extensible
         * return 1 to explicitly allow the join to go ahead or 0 to ignore the event.
         * @param user The user joining the channel
         * @param chan The channel being joined
-        * @return 1 to explicitly allow the join, 0 to proceed as normal
+        * @return 1 to explicitly allow the join, 0 to proceed as normal. Return -1 to explicitly deny the
+        * join to the channel.
         */
        virtual int OnCheckBan(User* user, Channel* chan);
 
@@ -1860,10 +1862,31 @@ class CoreExport ModuleManager : public classbase
  * and functions needed to make a module loadable by the OS.
  * It defines the class factory and external init_module function.
  */
+#ifdef WINDOWS
+
+#define MODULE_INIT(y) \
+       extern "C" DllExport Module * init_module(InspIRCd* Me) \
+       { \
+               return new y(Me); \
+       } \
+       BOOLEAN WINAPI DllMain(HINSTANCE hDllHandle, DWORD nReason, LPVOID Reserved) \
+       { \
+               switch ( nReason ) \
+               { \
+                       case DLL_PROCESS_ATTACH: \
+                       case DLL_PROCESS_DETACH: \
+                               break; \
+               } \
+               return TRUE; \
+       }
+
+#else
+
 #define MODULE_INIT(y) \
        extern "C" DllExport Module * init_module(InspIRCd* Me) \
        { \
                return new y(Me); \
        }
+#endif
 
 #endif