netdirect: add winverbs ND provider
[mirror/winof/.git] / ulp / netdirect / user / nd_main.cpp
1 /*\r
2  * Copyright (c) 2009 Intel Corporation. All rights reserved.\r
3  *\r
4  * This software is available to you under the OpenIB.org BSD license\r
5  * below:\r
6  *\r
7  *     Redistribution and use in source and binary forms, with or\r
8  *     without modification, are permitted provided that the following\r
9  *     conditions are met:\r
10  *\r
11  *      - Redistributions of source code must retain the above\r
12  *        copyright notice, this list of conditions and the following\r
13  *        disclaimer.\r
14  *\r
15  *      - Redistributions in binary form must reproduce the above\r
16  *        copyright notice, this list of conditions and the following\r
17  *        disclaimer in the documentation and/or other materials\r
18  *        provided with the distribution.\r
19  *\r
20  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
21  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
22  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AWV\r
23  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
24  * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
25  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
26  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
27  * SOFTWARE.\r
28  */\r
29 \r
30 #include <windows.h>\r
31 #include <ws2spi.h>\r
32 #include <stdio.h>\r
33 #include "nd_provider.h"\r
34 \r
35 \r
36 extern "C" {\r
37 \r
38 extern BOOL APIENTRY\r
39 _DllMainCRTStartupForGS(HINSTANCE h_module, DWORD ul_reason_for_call,\r
40                                                 LPVOID lp_reserved);\r
41 \r
42 \r
43 BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)\r
44 {\r
45         switch (dwReason) {\r
46         case DLL_PROCESS_ATTACH:\r
47         case DLL_PROCESS_DETACH:\r
48                 return _DllMainCRTStartupForGS(hInstance, dwReason, lpReserved);\r
49         default:\r
50                 return TRUE;\r
51         }\r
52 }\r
53 \r
54 STDAPI DllCanUnloadNow(void)\r
55 {\r
56         return S_OK;\r
57 }\r
58 \r
59 STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void** ppv)\r
60 {\r
61         UNREFERENCED_PARAMETER(rclsid);\r
62 \r
63         if (riid != IID_IClassFactory) {\r
64                 *ppv = NULL;\r
65                 return E_NOINTERFACE;\r
66         }\r
67 \r
68         *ppv = new CNDClassFactory();\r
69         if (*ppv == NULL) {\r
70                 return E_OUTOFMEMORY;\r
71         }\r
72 \r
73         return S_OK;\r
74 }\r
75 \r
76 int /*WSPAPI*/ WSPStartup(WORD wVersionRequested, LPWSPDATA lpWSPData,\r
77                                           LPWSAPROTOCOL_INFOW lpProtocolInfo,\r
78                                           WSPUPCALLTABLE UpcallTable, LPWSPPROC_TABLE lpProcTable)\r
79 {\r
80         UNREFERENCED_PARAMETER(wVersionRequested);\r
81         UNREFERENCED_PARAMETER(lpWSPData);\r
82         UNREFERENCED_PARAMETER(lpProtocolInfo);\r
83         UNREFERENCED_PARAMETER(UpcallTable);\r
84         UNREFERENCED_PARAMETER(lpProcTable);\r
85         return WSASYSNOTREADY;\r
86 }\r
87 \r
88 } // extern "C"