Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef _INC_MSDRM
      7 #define _INC_MSDRM
      8 #include <msdrmdefs.h>
      9 #ifdef __cplusplus
     10 extern "C" {
     11 #endif
     12 
     13 HRESULT WINAPI DRMCreateClientSession(
     14   DRMCALLBACK pfnCallback,
     15   UINT uCallbackVersion,
     16   PWSTR wszGroupIDProviderType,
     17   PWSTR wszGroupID,
     18   DRMHSESSION *phClient
     19 );
     20 
     21 HRESULT WINAPI DRMAcquireIssuanceLicenseTemplate(
     22   DRMHSESSION hClient,
     23   UINT uFlags,
     24   VOID *pvReserved,
     25   UINT cReserved,
     26   PWSTR *pwszReserved,
     27   PWSTR wszURL,
     28   VOID *pvContext
     29 );
     30 
     31 HRESULT WINAPI DRMActivate(
     32   DRMHSESSION hClient,
     33   UINT uFlags,
     34   UINT uLangID,
     35   DRM_ACTSERV_INFO *pActServInfo,
     36   VOID *pvContext,
     37   HWND hParentWnd
     38 );
     39 
     40 HRESULT WINAPI DRMGetServiceLocation(
     41   DRMHSESSION hClient,
     42   UINT uServiceType,
     43   UINT uServiceLocation,
     44   PWSTR wszIssuanceLicense,
     45   UINT *puServiceURLLength,
     46   PWSTR wszServiceURL
     47 );
     48 
     49 HRESULT WINAPI DRMIsActivated(
     50   DRMHSESSION hClient,
     51   UINT uFlags,
     52   DRM_ACTSERV_INFO *pActServInfo
     53 );
     54 
     55 HRESULT WINAPI DRMCheckSecurity(
     56   DRMENVHANDLE hEnv,
     57   UINT cLevel
     58 );
     59 
     60 HRESULT WINAPI DRMCloseSession(
     61   DRMHSESSION hSession
     62 );
     63 
     64 HRESULT WINAPI DRMCreateLicenseStorageSession(
     65   DRMENVHANDLE hEnv,
     66   DRMHANDLE hDefaultLibrary,
     67   DRMHSESSION hClient,
     68   UINT uFlags,
     69   PWSTR wszIssuanceLicense,
     70   DRMHSESSION *phLicenseStorage
     71 );
     72 
     73 HRESULT WINAPI DRMDuplicateSession(
     74   DRMHSESSION hSessionIn,
     75   DRMHSESSION *phSessionOut
     76 );
     77 
     78 HRESULT WINAPI DRMGetClientVersion(
     79   DRM_CLIENT_VERSION_INFO *pDRMClientVersionInfo
     80 );
     81 
     82 HRESULT WINAPI DRMGetEnvironmentInfo(
     83   DRMENVHANDLE handle,
     84   PWSTR wszAttribute,
     85   DRMENCODINGTYPE *peEncoding,
     86   UINT *pcBuffer,
     87   BYTE *pbBuffer
     88 );
     89 
     90 HRESULT WINAPI DRMGetIntervalTime(
     91   DRMPUBHANDLE hIssuanceLicense,
     92   UINT *pcDays
     93 );
     94 
     95 HRESULT WINAPI DRMGetOwnerLicense(
     96   DRMPUBHANDLE hIssuanceLicense,
     97   UINT *puLength,
     98   PWSTR wszOwnerLicense
     99 );
    100 
    101 HRESULT WINAPI DRMGetProcAddress(
    102   DRMHANDLE hLibrary,
    103   PWSTR wszProcName,
    104   FARPROC *ppfnProcAddress
    105 );
    106 
    107 HRESULT WINAPI DRMGetSecurityProvider(
    108   UINT uFlags,
    109   UINT *puTypeLen,
    110   PWSTR wszType,
    111   UINT *puPathLen,
    112   PWSTR wszPath
    113 );
    114 
    115 HRESULT WINAPI DRMInitEnvironment(
    116   DRMSECURITYPROVIDERTYPE eSecurityProviderType,
    117   DRMSPECTYPE eSpecification,
    118   PWSTR wszSecurityProvider,
    119   PWSTR wszManifestCredentials,
    120   PWSTR wszMachineCredentials,
    121   DRMENVHANDLE *phEnv,
    122   DRMHANDLE *phDefaultLibrary
    123 );
    124 
    125 HRESULT WINAPI DRMLoadLibrary(
    126   DRMENVHANDLE hEnv,
    127   DRMSPECTYPE eSpecification,
    128   PWSTR wszLibraryProvider,
    129   PWSTR wszCredentials,
    130   DRMHANDLE *phLibrary
    131 );
    132 
    133 HRESULT WINAPI DRMRegisterContent(
    134   WINBOOL fRegister
    135 );
    136 
    137 HRESULT WINAPI DRMRegisterRevocationList(
    138   DRMENVHANDLE hEnv,
    139   PWSTR wszRevocationList
    140 );
    141 
    142 HRESULT WINAPI DRMRepair(void);
    143 
    144 HRESULT WINAPI DRMSetIntervalTime(
    145   DRMPUBHANDLE hIssuanceLicense,
    146   UINT cDays
    147 );
    148 
    149 HRESULT WINAPI DRMSetGlobalOptions(
    150   DRMGLOBALOPTIONS eGlobalOptions,
    151   LPVOID pvdata,
    152   DWORD dwlen
    153 );
    154 
    155 HRESULT WINAPI DRMAddRightWithUser(
    156   DRMPUBHANDLE hIssuanceLicense,
    157   DRMPUBHANDLE hRight,
    158   DRMPUBHANDLE hUser
    159 );
    160 
    161 HRESULT WINAPI DRMClearAllRights(
    162   DRMPUBHANDLE hIssuanceLicense
    163 );
    164 
    165 HRESULT WINAPI DRMCreateIssuanceLicense(
    166   SYSTEMTIME *pstTimeFrom,
    167   SYSTEMTIME *pstTimeUntil,
    168   PWSTR wszReferralInfoName,
    169   PWSTR wszReferralInfoURL,
    170   DRMPUBHANDLE hOwner,
    171   PWSTR wszIssuanceLicense,
    172   DRMHANDLE hBoundLicense,
    173   DRMPUBHANDLE *phIssuanceLicense
    174 );
    175 
    176 HRESULT WINAPI DRMCreateRight(
    177   PWSTR wszRightName,
    178   SYSTEMTIME *pstFrom,
    179   SYSTEMTIME *pstUntil,
    180   UINT cExtendedInfo,
    181   PWSTR *pwszExtendedInfoName,
    182   PWSTR *pwszExtendedInfoValue,
    183   DRMPUBHANDLE *phRight
    184 );
    185 
    186 HRESULT WINAPI DRMCreateUser(
    187   PWSTR wszUserName,
    188   PWSTR wszUserId,
    189   PWSTR wszUserIdType,
    190   DRMPUBHANDLE *phUser
    191 );
    192 
    193 HRESULT WINAPI DRMGetApplicationSpecificData(
    194   DRMPUBHANDLE hIssuanceLicense,
    195   UINT uIndex,
    196   UINT *puNameLength,
    197   PWSTR wszName,
    198   UINT *puValueLength,
    199   PWSTR wszValue
    200 );
    201 
    202 HRESULT WINAPI DRMGetIssuanceLicenseInfo(
    203   DRMPUBHANDLE hIssuanceLicense,
    204   SYSTEMTIME *pstTimeFrom,
    205   SYSTEMTIME *pstTimeUntil,
    206   UINT uFlags,
    207   UINT *puDistributionPointNameLength,
    208   PWSTR wszDistributionPointName,
    209   UINT *puDistributionPointURLLength,
    210   PWSTR wszDistributionPointURL,
    211   DRMPUBHANDLE *phOwner,
    212   WINBOOL *pfOfficial
    213 );
    214 
    215 HRESULT WINAPI DRMGetIssuanceLicenseTemplate(
    216   DRMPUBHANDLE hIssuanceLicense,
    217   UINT *puIssuanceLicenseTemplateLength,
    218   PWSTR wszIssuanceLicenseTemplate
    219 );
    220 
    221 HRESULT WINAPI DRMGetMetaData(
    222   DRMPUBHANDLE hIssuanceLicense,
    223   UINT *puContentIdLength,
    224   PWSTR wszContentId,
    225   UINT *puContentIdTypeLength,
    226   PWSTR wszContentIdType,
    227   UINT *puSKUIdLength,
    228   PWSTR wszSKUId,
    229   UINT *puSKUIdTypeLength,
    230   PWSTR wszSKUIdType,
    231   UINT *puContentTypeLength,
    232   PWSTR wszContentType,
    233   UINT *puContentNameLength,
    234   PWSTR wszContentName
    235 );
    236 
    237 HRESULT WINAPI DRMGetNameAndDescription(
    238   DRMPUBHANDLE hIssuanceLicense,
    239   UINT uIndex,
    240   UINT *pulcid,
    241   UINT *puNameLength,
    242   PWSTR wszName,
    243   UINT *puDescriptionLength,
    244   PWSTR wszDescription
    245 );
    246 
    247 HRESULT WINAPI DRMGetRevocationPoint(
    248   DRMPUBHANDLE hIssuanceLicense,
    249   UINT *puIdLength,
    250   PWSTR wszId,
    251   UINT *puIdTypeLength,
    252   PWSTR wszIdType,
    253   UINT *puURLLength,
    254   PWSTR wszURL,
    255   SYSTEMTIME *pstFrequency,
    256   UINT *puNameLength,
    257   PWSTR wszName,
    258   UINT *puPublicKeyLength,
    259   PWSTR wszPublicKey
    260 );
    261 
    262 HRESULT WINAPI DRMGetRightExtendedInfo(
    263   DRMPUBHANDLE hRight,
    264   UINT uIndex,
    265   UINT *puExtendedInfoNameLength,
    266   PWSTR wszExtendedInfoName,
    267   UINT *puExtendedInfoValueLength,
    268   PWSTR wszExtendedInfoValue
    269 );
    270 
    271 HRESULT WINAPI DRMGetRightInfo(
    272   DRMPUBHANDLE hRight,
    273   UINT *puRightNameLength,
    274   PWSTR wszRightName,
    275   SYSTEMTIME *pstFrom,
    276   SYSTEMTIME *pstUntil
    277 );
    278 
    279 HRESULT WINAPI DRMGetSignedIssuanceLicense(
    280   DRMENVHANDLE hEnv,
    281   DRMPUBHANDLE hIssuanceLicense,
    282   UINT uFlags,
    283   BYTE *pbSymKey,
    284   UINT cbSymKey,
    285   PWSTR wszSymKeyType,
    286   PWSTR wszClientLicensorCertificate,
    287   DRMCALLBACK pfnCallback,
    288   PWSTR wszURL,
    289   VOID *pvContext
    290 );
    291 
    292 HRESULT WINAPI DRMGetUsagePolicy(
    293   DRMPUBHANDLE hIssuanceLicense,
    294   UINT uIndex,
    295   DRM_USAGEPOLICY_TYPE *peUsagePolicyType,
    296   WINBOOL *pfExclusion,
    297   UINT *puNameLength,
    298   PWSTR wszName,
    299   UINT *puMinVersionLength,
    300   PWSTR wszMinVersion,
    301   UINT *puMaxVersionLength,
    302   PWSTR wszMaxVersion,
    303   UINT *puPublicKeyLength,
    304   PWSTR wszPublicKey,
    305   UINT *puDigestAlgorithmLength,
    306   PWSTR wszDigestAlgorithm,
    307   UINT *pcbDigest,
    308   BYTE *pbDigest
    309 );
    310 
    311 HRESULT WINAPI DRMGetUserInfo(
    312   DRMPUBHANDLE hUser,
    313   UINT *puUserNameLength,
    314   PWSTR wszUserName,
    315   UINT *puUserIdLength,
    316   PWSTR wszUserId,
    317   UINT *puUserIdTypeLength,
    318   PWSTR wszUserIdType
    319 );
    320 
    321 HRESULT WINAPI DRMGetUserRights(
    322   DRMPUBHANDLE hIssuanceLicense,
    323   DRMPUBHANDLE hUser,
    324   UINT uIndex,
    325   DRMPUBHANDLE *phRight
    326 );
    327 
    328 HRESULT WINAPI DRMGetUsers(
    329   DRMPUBHANDLE hIssuanceLicense,
    330   UINT uIndex,
    331   DRMPUBHANDLE *phUser
    332 );
    333 
    334 HRESULT WINAPI DRMSetApplicationSpecificData(
    335   DRMPUBHANDLE hIssuanceLicense,
    336   WINBOOL fDelete,
    337   PWSTR wszName,
    338   PWSTR wszValue
    339 );
    340 
    341 HRESULT WINAPI DRMSetMetaData(
    342   DRMPUBHANDLE hIssuanceLicense,
    343   PWSTR wszContentId,
    344   PWSTR wszContentIdType,
    345   PWSTR wszSKUId,
    346   PWSTR wszSKUIdType,
    347   PWSTR wszContentType,
    348   PWSTR wszContentName
    349 );
    350 
    351 HRESULT WINAPI DRMSetNameAndDescription(
    352   DRMPUBHANDLE hIssuanceLicense,
    353   WINBOOL fDelete,
    354   UINT lcid,
    355   PWSTR wszName,
    356   PWSTR wszDescription
    357 );
    358 
    359 HRESULT WINAPI DRMSetRevocationPoint(
    360   DRMPUBHANDLE hIssuanceLicense,
    361   WINBOOL fDelete,
    362   PWSTR wszId,
    363   PWSTR wszIdType,
    364   PWSTR wszURL,
    365   SYSTEMTIME *pstFrequency,
    366   PWSTR wszName,
    367   PWSTR wszPublicKey
    368 );
    369 
    370 HRESULT WINAPI DRMSetUsagePolicy(
    371   DRMPUBHANDLE hIssuanceLicense,
    372   DRM_USAGEPOLICY_TYPE eUsagePolicyType,
    373   WINBOOL fDelete,
    374   WINBOOL fExclusion,
    375   PWSTR wszName,
    376   PWSTR wszMinVersion,
    377   PWSTR wszMaxVersion,
    378   PWSTR wszPublicKey,
    379   PWSTR wszDigestAlgorithm,
    380   BYTE *pbDigest,
    381   UINT cbDigest
    382 );
    383 
    384 HRESULT WINAPI DRMCloseEnvironmentHandle(
    385   DRMENVHANDLE hEnv
    386 );
    387 
    388 HRESULT WINAPI DRMCloseHandle(
    389   DRMHANDLE handle
    390 );
    391 
    392 HRESULT WINAPI DRMClosePubHandle(
    393   DRMPUBHANDLE hPub
    394 );
    395 
    396 HRESULT WINAPI DRMCloseQueryHandle(
    397   DRMQUERYHANDLE hQuery
    398 );
    399 
    400 HRESULT WINAPI DRMDuplicateEnvironmentHandle(
    401   DRMENVHANDLE hToCopy,
    402   DRMENVHANDLE *phCopy
    403 );
    404 
    405 HRESULT WINAPI DRMDuplicateHandle(
    406   DRMHANDLE hToCopy,
    407   DRMHANDLE *phCopy
    408 );
    409 
    410 HRESULT WINAPI DRMDuplicatePubHandle(
    411   DRMPUBHANDLE hPubIn,
    412   DRMPUBHANDLE *phPubOut
    413 );
    414 
    415 HRESULT WINAPI DRMGetUnboundLicenseAttribute(
    416   DRMQUERYHANDLE hQueryRoot,
    417   PWSTR wszAttributeType,
    418   UINT iWhich,
    419   DRMENCODINGTYPE *peEncoding,
    420   UINT *pcBuffer,
    421   BYTE *pbBuffer
    422 );
    423 
    424 HRESULT WINAPI DRMGetUnboundLicenseAttributeCount(
    425   DRMQUERYHANDLE hQueryRoot,
    426   PWSTR wszAttributeType,
    427   UINT *pcAttributes
    428 );
    429 
    430 HRESULT WINAPI DRMGetUnboundLicenseObject(
    431   DRMQUERYHANDLE hQueryRoot,
    432   PWSTR wszSubObjectType,
    433   UINT iIndex,
    434   DRMQUERYHANDLE *phSubQuery
    435 );
    436 
    437 HRESULT WINAPI DRMGetUnboundLicenseObjectCount(
    438   DRMQUERYHANDLE hQueryRoot,
    439   PWSTR wszSubObjectType,
    440   UINT *pcSubObjects
    441 );
    442 
    443 HRESULT WINAPI DRMParseUnboundLicense(
    444   PWSTR wszCertificate,
    445   DRMQUERYHANDLE *phQueryRoot
    446 );
    447 
    448 HRESULT WINAPI DRMCreateBoundLicense(
    449   DRMENVHANDLE hEnv,
    450   DRMBOUNDLICENSEPARAMS *pParams,
    451   PWSTR wszLicenseChain,
    452   DRMHANDLE *phBoundLicense,
    453   DRMHANDLE *phErrorLog
    454 );
    455 
    456 HRESULT WINAPI DRMCreateEnablingPrincipal(
    457   DRMENVHANDLE hEnv,
    458   DRMHANDLE hLibrary,
    459   PWSTR wszObject,
    460   DRMID *pidPrincipal,
    461   PWSTR wszCredentials,
    462   DRMHANDLE *pHEnablingPrincipal
    463 );
    464 
    465 HRESULT WINAPI DRMGetBoundLicenseAttribute(
    466   DRMHANDLE hQueryRoot,
    467   PWSTR wszAttribute,
    468   UINT iWhich,
    469   DRMENCODINGTYPE *peEncoding,
    470   UINT *pcBuffer,
    471   BYTE *pbBuffer
    472 );
    473 
    474 HRESULT WINAPI DRMGetBoundLicenseAttributeCount(
    475   DRMHANDLE hQueryRoot,
    476   PWSTR wszAttribute,
    477   UINT *pcAttributes
    478 );
    479 
    480 HRESULT WINAPI DRMGetBoundLicenseObject(
    481   DRMHANDLE hQueryRoot,
    482   PWSTR wszSubObjectType,
    483   UINT iWhich,
    484   DRMHANDLE *phSubObject
    485 );
    486 
    487 HRESULT WINAPI DRMGetBoundLicenseObjectCount(
    488   DRMHANDLE hQueryRoot,
    489   PWSTR wszSubObjectType,
    490   UINT *pcSubObject
    491 );
    492 
    493 HRESULT WINAPI DRMAcquireAdvisories(
    494   DRMHSESSION hLicenseStorage,
    495   PWSTR wszLicense,
    496   PWSTR wszURL,
    497   VOID *pvContext
    498 );
    499 
    500 HRESULT WINAPI DRMAcquireLicense(
    501   DRMHSESSION hSession,
    502   UINT uFlags,
    503   PWSTR wszGroupIdentityCredential,
    504   PWSTR wszRequestedRights,
    505   PWSTR wszCustomData,
    506   PWSTR wszURL,
    507   VOID *pvContext
    508 );
    509 
    510 HRESULT WINAPI DRMAddLicense(
    511   DRMHSESSION hLicenseStorage,
    512   UINT uFlags,
    513   PWSTR wszLicense
    514 );
    515 
    516 HRESULT WINAPI DRMConstructCertificateChain(
    517   UINT cCertificates,
    518   PWSTR *rgwszCertificates,
    519   UINT *pcChain,
    520   PWSTR wszChain
    521 );
    522 
    523 HRESULT WINAPI DRMDeconstructCertificateChain(
    524   PWSTR wszChain,
    525   UINT iWhich,
    526   UINT *pcCert,
    527   PWSTR wszCert
    528 );
    529 
    530 HRESULT WINAPI DRMDeleteLicense(
    531   DRMHSESSION hSession,
    532   PWSTR wszLicenseId
    533 );
    534 
    535 HRESULT WINAPI DRMEnumerateLicense(
    536   DRMHSESSION hSession,
    537   UINT uFlags,
    538   UINT uIndex,
    539   WINBOOL *pfSharedFlag,
    540   UINT *puCertificateDataLen,
    541   PWSTR wszCertificateData
    542 );
    543 
    544 HRESULT WINAPI DRMGetCertificateChainCount(
    545   PWSTR wszChain,
    546   UINT *pcCertCount
    547 );
    548 
    549 HRESULT WINAPI DRMAttest(
    550   DRMHANDLE hEnablingPrincipal,
    551   PWSTR wszData,
    552   DRMATTESTTYPE eType,
    553   UINT *pcStrLen,
    554   PWSTR wszAttestedBlob
    555 );
    556 
    557 HRESULT WINAPI DRMCreateEnablingBitsDecryptor(
    558   DRMHANDLE hBoundLicense,
    559   PWSTR wszRight,
    560   DRMHANDLE hAuxLib,
    561   PWSTR wszAuxPlug,
    562   DRMHANDLE *phDecryptor
    563 );
    564 
    565 HRESULT WINAPI DRMCreateEnablingBitsEncryptor(
    566   DRMHANDLE hBoundLicense,
    567   PWSTR wszRight,
    568   DRMHANDLE hAuxLib,
    569   PWSTR wszAuxPlug,
    570   DRMHANDLE *phEncryptor
    571 );
    572 
    573 HRESULT WINAPI DRMDecrypt(
    574   DRMHANDLE hCryptoProvider,
    575   UINT iPosition,
    576   UINT cNumInBytes,
    577   BYTE *pbInData,
    578   UINT *pcNumOutBytes,
    579   BYTE *pbOutData
    580 );
    581 
    582 HRESULT WINAPI DRMEncrypt(
    583   DRMHANDLE hCryptoProvider,
    584   UINT iPosition,
    585   UINT cNumInBytes,
    586   BYTE *pbInData,
    587   UINT *pcNumOutBytes,
    588   BYTE *pbOutData
    589 );
    590 
    591 HRESULT WINAPI DRMVerify(
    592   PWSTR wszData,
    593   UINT *pcStrLenAttestedData,
    594   PWSTR wszAttestedData,
    595   DRMATTESTTYPE *peType,
    596   UINT *pcPrincipalChain,
    597   PWSTR wszPrincipalChain,
    598   UINT *pcManifestChain,
    599   PWSTR wszManifestChain
    600 );
    601 
    602 HRESULT WINAPI DRMDecode(
    603   PWSTR wszAlgID,
    604   PWSTR wszEncodedString,
    605   UINT *puDecodedDataLen,
    606   BYTE *pbDecodedData
    607 );
    608 
    609 HRESULT WINAPI DRMEncode(
    610   PWSTR wszAlgID,
    611   UINT uDataLen,
    612   BYTE *pbDecodedData,
    613   UINT *puEncodedStringLen,
    614   PWSTR wszEncodedString
    615 );
    616 
    617 HRESULT WINAPI DRMGetInfo(
    618   DRMHANDLE handle,
    619   PWSTR wszAttribute,
    620   DRMENCODINGTYPE *peEncoding,
    621   UINT *pcBuffer,
    622   BYTE *pbBuffer
    623 );
    624 
    625 HRESULT WINAPI DRMGetTime(
    626   DRMENVHANDLE hEnv,
    627   DRMTIMETYPE eTimerIdType,
    628   SYSTEMTIME *poTimeObject
    629 );
    630 
    631 #if (_WIN32_WINNT >= 0x0600)
    632 HRESULT WINAPI DRMIsWindowProtected(
    633   HWND hwnd,
    634   WINBOOL *pfProtected
    635 );
    636 
    637 HRESULT WINAPI DRMRegisterProtectedWindow(
    638   DRMENVHANDLE hEnv,
    639   HWND hwnd
    640 );
    641 
    642 HRESULT WINAPI DRMAcquireIssuanceLicenseTemplate(
    643   DRMHSESSION hClient,
    644   UINT uFlags,
    645   VOID *pvReserved,
    646   UINT cReserved,
    647   PWSTR *pwszReserved,
    648   PWSTR wszURL,
    649   VOID *pvContext
    650 );
    651 
    652 #endif /*(_WIN32_WINNT >= 0x0600)*/
    653 #if (_WIN32_WINNT >= 0x0601)
    654 HRESULT WINAPI DRMGetSignedIssuanceLicenseEx(
    655   DRMENVHANDLE hEnv,
    656   DRMPUBHANDLE hIssuanceLicense,
    657   UINT uFlags,
    658   BYTE *pbSymKey,
    659   UINT cbSymKey,
    660   PWSTR wszSymKeyType,
    661   VOID *pvReserved,
    662   DRMHANDLE hEnablingPrincipal,
    663   DRMHANDLE hBoundLicense,
    664   DRMCALLBACK pfnCallback,
    665   VOID *pvContext
    666 );
    667 #endif /*(_WIN32_WINNT >= 0x0601)*/
    668 
    669 #ifdef __cplusplus
    670 }
    671 #endif
    672 #endif /*_INC_MSDRM*/
    673