Windows RT related code cleanup.

Windows RT sample cleanup.
Video I/O code cleanup.
pull/1040/head
Alexander Smorkalov 12 years ago
parent 91c519467d
commit 347c86d9b5
  1. 2
      modules/highgui/include/opencv2/highgui/highgui_c.h
  2. 44
      modules/highgui/src/cap_msmf.cpp
  3. 6
      platforms/scripts/cmake_winrt.cmd
  4. 0
      samples/winrt/ImageManipulations/AdvancedCapture.xaml
  5. 0
      samples/winrt/ImageManipulations/AdvancedCapture.xaml.cpp
  6. 0
      samples/winrt/ImageManipulations/AdvancedCapture.xaml.h
  7. 0
      samples/winrt/ImageManipulations/App.xaml
  8. 0
      samples/winrt/ImageManipulations/App.xaml.cpp
  9. 0
      samples/winrt/ImageManipulations/App.xaml.h
  10. 92
      samples/winrt/ImageManipulations/C++/MediaExtensions/OcvTransform/OcvImageManipulations.h
  11. 0
      samples/winrt/ImageManipulations/Constants.cpp
  12. 0
      samples/winrt/ImageManipulations/Constants.h
  13. 0
      samples/winrt/ImageManipulations/MainPage.xaml
  14. 0
      samples/winrt/ImageManipulations/MainPage.xaml.cpp
  15. 0
      samples/winrt/ImageManipulations/MainPage.xaml.h
  16. 0
      samples/winrt/ImageManipulations/MediaCapture.sln
  17. 0
      samples/winrt/ImageManipulations/MediaCapture.vcxproj
  18. 0
      samples/winrt/ImageManipulations/MediaExtensions/Common/AsyncCB.h
  19. 0
      samples/winrt/ImageManipulations/MediaExtensions/Common/BufferLock.h
  20. 0
      samples/winrt/ImageManipulations/MediaExtensions/Common/CritSec.h
  21. 0
      samples/winrt/ImageManipulations/MediaExtensions/Common/LinkList.h
  22. 0
      samples/winrt/ImageManipulations/MediaExtensions/Common/OpQueue.h
  23. 0
      samples/winrt/ImageManipulations/MediaExtensions/OcvTransform/OcvImageManipulations.idl
  24. 0
      samples/winrt/ImageManipulations/MediaExtensions/OcvTransform/OcvTransform.cpp
  25. 0
      samples/winrt/ImageManipulations/MediaExtensions/OcvTransform/OcvTransform.def
  26. 0
      samples/winrt/ImageManipulations/MediaExtensions/OcvTransform/OcvTransform.h
  27. 0
      samples/winrt/ImageManipulations/MediaExtensions/OcvTransform/OcvTransform.vcxproj
  28. 0
      samples/winrt/ImageManipulations/MediaExtensions/OcvTransform/dllmain.cpp
  29. 0
      samples/winrt/ImageManipulations/Package.appxmanifest
  30. 0
      samples/winrt/ImageManipulations/assets/opencv-logo-150.png
  31. 0
      samples/winrt/ImageManipulations/assets/opencv-logo-30.png
  32. 0
      samples/winrt/ImageManipulations/assets/splash-sdk.png
  33. 0
      samples/winrt/ImageManipulations/assets/windows-sdk.png
  34. 0
      samples/winrt/ImageManipulations/common/LayoutAwarePage.cpp
  35. 0
      samples/winrt/ImageManipulations/common/LayoutAwarePage.h
  36. 0
      samples/winrt/ImageManipulations/common/StandardStyles.xaml
  37. 0
      samples/winrt/ImageManipulations/common/suspensionmanager.cpp
  38. 0
      samples/winrt/ImageManipulations/common/suspensionmanager.h
  39. 238
      samples/winrt/ImageManipulations/description.html
  40. 0
      samples/winrt/ImageManipulations/description/4ee0dda0-3e7e-46df-b80b-1692acc1c812Combined.css
  41. 3629
      samples/winrt/ImageManipulations/description/Brand.css
  42. 0
      samples/winrt/ImageManipulations/description/Combined.css
  43. 418
      samples/winrt/ImageManipulations/description/Galleries.css
  44. 147
      samples/winrt/ImageManipulations/description/Layout.css
  45. 303
      samples/winrt/ImageManipulations/description/c2e69f54-1c43-4037-b90b-5f775f1d945fBrand.css
  46. 179
      samples/winrt/ImageManipulations/description/iframedescription.css
  47. 52
      samples/winrt/ImageManipulations/description/offline.js
  48. 25
      samples/winrt/ImageManipulations/license.rtf
  49. 0
      samples/winrt/ImageManipulations/pch.cpp
  50. 0
      samples/winrt/ImageManipulations/pch.h
  51. 0
      samples/winrt/ImageManipulations/sample-utils/SampleTemplateStyles.xaml

@ -558,7 +558,7 @@ CVAPI(int) cvGetCaptureDomain( CvCapture* capture);
/* "black box" video file writer structure */
typedef struct CvVideoWriter CvVideoWriter;
#define CV_FOURCC_MACRO(c1, c2, c3, c4) ((c1 & 255) + ((c2 & 255) << 8) + ((c3 & 255) << 16) + ((c4 & 255) << 24))
#define CV_FOURCC_MACRO(c1, c2, c3, c4) (((c1) & 255) + (((c2) & 255) << 8) + (((c3) & 255) << 16) + (((c4) & 255) << 24))
CV_INLINE int CV_FOURCC(char c1, char c2, char c3, char c4)
{

@ -203,12 +203,8 @@ private:
RawImage *ig_RIOut;
ImageGrabber(unsigned int deviceID, bool synchronous);
HRESULT CreateTopology(IMFMediaSource *pSource, IMFActivate *pSinkActivate, IMFTopology **ppTopo);
HRESULT AddSourceNode(
IMFTopology *pTopology,
IMFMediaSource *pSource,
IMFPresentationDescriptor *pPD,
IMFStreamDescriptor *pSD,
IMFTopologyNode **ppNode);
HRESULT AddSourceNode(IMFTopology *pTopology, IMFMediaSource *pSource,
IMFPresentationDescriptor *pPD, IMFStreamDescriptor *pSD, IMFTopologyNode **ppNode);
HRESULT AddOutputNode(IMFTopology *pTopology, IMFActivate *pActivate, DWORD dwId, IMFTopologyNode **ppNode);
// IUnknown methods
STDMETHODIMP QueryInterface(REFIID iid, void** ppv);
@ -886,7 +882,7 @@ FormatReader::~FormatReader(void)
{
}
#define CHECK_HR(x) if (FAILED(x)) { printf("Checking failed !!!\n"); goto done; }
#define CHECK_HR(x) if (FAILED(x)) { goto done; }
ImageGrabber::ImageGrabber(unsigned int deviceID, bool synchronous):
m_cRef(1),
@ -904,10 +900,8 @@ ImageGrabber::ImageGrabber(unsigned int deviceID, bool synchronous):
ImageGrabber::~ImageGrabber(void)
{
printf("ImageGrabber::~ImageGrabber()\n");
if (ig_pSession)
{
printf("ig_pSession->Shutdown()\n");
ig_pSession->Shutdown();
}
@ -947,31 +941,26 @@ HRESULT ImageGrabber::initImageGrabber(IMFMediaSource *pSource, GUID VideoFormat
hr = pSource->CreatePresentationDescriptor(&pPD);
if (FAILED(hr))
{
printf("Error creating CreatePresentationDescriptor()\n");
goto err;
}
BOOL fSelected;
hr = pPD->GetStreamDescriptorByIndex(0, &fSelected, &pSD);
if (FAILED(hr)) {
printf("Error GetStreamDescriptorByIndex()\n");
goto err;
}
hr = pSD->GetMediaTypeHandler(&pHandler);
if (FAILED(hr)) {
printf("Error GetMediaTypeHandler()\n");
goto err;
}
DWORD cTypes = 0;
hr = pHandler->GetMediaTypeCount(&cTypes);
if (FAILED(hr)) {
printf("Error GetMediaTypeCount()\n");
goto err;
}
if(cTypes > 0)
{
hr = pHandler->GetCurrentMediaType(&pCurrentType);
if (FAILED(hr)) {
printf("Error GetCurrentMediaType()\n");
goto err;
}
MT = FormatReader::Read(pCurrentType.Get());
@ -986,10 +975,6 @@ err:
{
sizeRawImage = MT.MF_MT_FRAME_SIZE * 4;
}
else
{
printf("Video format is not RBG 24/32!\n");
}
CHECK_HR(hr = RawImage::CreateInstance(&ig_RIFirst, sizeRawImage));
CHECK_HR(hr = RawImage::CreateInstance(&ig_RISecond, sizeRawImage));
ig_RIOut = ig_RISecond;
@ -1038,16 +1023,8 @@ HRESULT ImageGrabber::startGrabbing(void)
PropVariantInit(&var);
HRESULT hr = S_OK;
hr = ig_pSession->SetTopology(0, ig_pTopology);
if (FAILED(hr))
{
printf("Error: cannot set topology (status %u)\n", hr);
}
DPO->printOut(L"IMAGEGRABBER VIDEODEVICE %i: Start Grabbing of the images\n", ig_DeviceID);
hr = ig_pSession->Start(&GUID_NULL, &var);
if (FAILED(hr))
{
printf("Error: cannot start session (status %u)\n", hr);
}
for(;;)
{
HRESULT hrStatus = S_OK;
@ -1289,7 +1266,6 @@ STDMETHODIMP ImageGrabber::OnProcessSample(REFGUID guidMajorMediaType, DWORD dwS
(void)llSampleDuration;
(void)dwSampleSize;
//printf("ImageGrabber::OnProcessSample() -- begin\n");
HANDLE tmp[] = {ig_hFinish, ig_hFrameGrabbed, NULL};
DWORD status = WaitForMultipleObjects(2, tmp, FALSE, INFINITE);
@ -1310,8 +1286,6 @@ STDMETHODIMP ImageGrabber::OnProcessSample(REFGUID guidMajorMediaType, DWORD dwS
ig_RIOut = ig_RISecond;
}
//printf("ImageGrabber::OnProcessSample() -- end\n");
if (ig_Synchronous)
{
SetEvent(ig_hFrameReady);
@ -3128,11 +3102,7 @@ void CvCaptureFile_MSMF::close()
if (videoFileSource)
{
HRESULT hr = videoFileSource->Shutdown();
if (FAILED(hr))
{
printf("VideoCapture Closing failed!\n");
}
videoFileSource->Shutdown();
}
}
@ -3531,16 +3501,13 @@ bool CvVideoWriter_MSMF::open( const char* filename, int fourcc,
void CvVideoWriter_MSMF::close()
{
printf("VideoWriter::close()\n");
if (!initiated)
{
printf("VideoWriter was not Initialized\n");
return;
}
initiated = false;
HRESULT hr = sinkWriter->Finalize();
printf("sinkWriter Finalize status %u\n", hr);
MFShutdown();
}
@ -3569,7 +3536,6 @@ bool CvVideoWriter_MSMF::writeFrame(const IplImage* img)
HRESULT hr = WriteFrame(target, rtStart, rtDuration);
if (FAILED(hr))
{
printf("Private WriteFrame failed\n");
delete[] target;
return false;
}
@ -3600,7 +3566,6 @@ HRESULT CvVideoWriter_MSMF::InitializeSinkWriter(const char* filename)
// Set the output media type.
if (SUCCEEDED(hr))
{
printf("MFCreateSinkWriterFromURL is successfull\n");
hr = MFCreateMediaType(&mediaTypeOut);
}
if (SUCCEEDED(hr))
@ -3755,7 +3720,6 @@ HRESULT CvVideoWriter_MSMF::WriteFrame(DWORD *videoFrameBuffer, const LONGLONG&
CvVideoWriter* cvCreateVideoWriter_MSMF( const char* filename, int fourcc,
double fps, CvSize frameSize, int isColor )
{
printf("Creating Media Foundation VideoWriter\n");
CvVideoWriter_MSMF* writer = new CvVideoWriter_MSMF;
if( writer->open( filename, fourcc, fps, frameSize, isColor != 0 ))
return writer;

@ -1,6 +1,6 @@
mkdir build
cd build
mkdir build_winrt_arm
cd build_winrt_arm
rem call "C:\Program Files\Microsoft Visual Studio 11.0\VC\bin\x86_arm\vcvarsx86_arm.bat"
cmake.exe -GNinja -DWITH_TBB=ON -DBUILD_TBB=ON -DCMAKE_BUILD_TYPE=Release -DWITH_FFMPEG=OFF -DBUILD_opencv_gpu=OFF -DBUILD_opencv_python=OFF -DCMAKE_TOOLCHAIN_FILE=..\..\winrt\arm.winrt.toolchain.cmake ..\..\..
cmake.exe -GNinja -DWITH_TBB=ON -DBUILD_TBB=ON -DCMAKE_BUILD_TYPE=Release -DWITH_FFMPEG=OFF -DBUILD_opencv_gpu=OFF -DBUILD_opencv_python=OFF -DCMAKE_TOOLCHAIN_FILE=..\winrt\arm.winrt.toolchain.cmake ..\..

@ -1,92 +0,0 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 8.00.0595 */
/* at Wed Jun 19 03:47:25 2013
*/
/* Compiler settings for C:\Users\ASMORK~1\AppData\Local\Temp\OcvImageManipulations.idl-2e8e757e:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0595
protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
DECLSPEC_UUID(), MIDL_INTERFACE()
*/
/* @@MIDL_FILE_HEADING( ) */
#pragma warning( disable: 4049 ) /* more than 64k source lines */
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__
#ifndef __OcvImageManipulations_h__
#define __OcvImageManipulations_h__
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif
#if defined(__cplusplus)
#if defined(__MIDL_USE_C_ENUM)
#define MIDL_ENUM enum
#else
#define MIDL_ENUM enum class
#endif
#endif
/* Forward Declarations */
/* header files for imported files */
#include "Windows.Media.h"
#ifdef __cplusplus
extern "C"{
#endif
/* interface __MIDL_itf_OcvImageManipulations_0000_0000 */
/* [local] */
#pragma warning(push)
#pragma warning(disable:4001)
#pragma once
#pragma warning(pop)
#ifndef RUNTIMECLASS_OcvTransform_OcvImageManipulations_DEFINED
#define RUNTIMECLASS_OcvTransform_OcvImageManipulations_DEFINED
extern const __declspec(selectany) WCHAR RuntimeClass_OcvTransform_OcvImageManipulations[] = L"OcvTransform.OcvImageManipulations";
#endif
/* interface __MIDL_itf_OcvImageManipulations_0000_0000 */
/* [local] */
extern RPC_IF_HANDLE __MIDL_itf_OcvImageManipulations_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_OcvImageManipulations_0000_0000_v0_0_s_ifspec;
/* Additional Prototypes for ALL interfaces */
/* end of Additional Prototypes */
#ifdef __cplusplus
}
#endif
#endif

@ -1,238 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head><link rel="stylesheet" type="text/css" href="description/Combined.css,0:SearchBox,0:ImageSprite;/Areas/Epx/Themes/Metro/Content:0&amp;amp;hashKey=E778FABBB649835AFE4E73BCAC4F643A" xmlns="http://www.w3.org/1999/xhtml" />
<link rel="stylesheet" type="text/css" href="description/4ee0dda0-3e7e-46df-b80b-1692acc1c812Combined.css,0:ImageSprite;/Areas/Epx/Themes/Metro/Content:0&amp;amp;hashKey=B88AD897C8197B762EA1BF0238A60A9F" xmlns="http://www.w3.org/1999/xhtml" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Media capture using capture device sample</title>
<link href="description/Galleries.css" type="text/css" rel="Stylesheet" /><link href="description/Layout.css" type="text/css" rel="Stylesheet" /><link href="description/Brand.css" type="text/css" rel="Stylesheet" /><link href="description/c2e69f54-1c43-4037-b90b-5f775f1d945fBrand.css" type="text/css" rel="Stylesheet" />
<link href="description/iframedescription.css" rel="Stylesheet" type="text/css" />
<script src="description/offline.js" type="text/javascript"></script>
<style type="text/css">
#projectInfo {
overflow: auto;
}
#longDesc {
clear:both;
margin: 25px 0 10px 0;
}
#SampleIndexList{
margin-left: 15px;
}
</style>
</head>
<body>
<div id="offlineDescription">
<h1>Media capture using capture device sample</h1>
<br/>
<div id="projectInfo">
<div class="section">
<div class="itemBarLong tagsContainer">
<label for="Technologies">Technologies</label>
<div id="Technologies">
Windows Runtime
</div>
</div>
<div class="itemBarLong tagsContainer">
<label for="Topics">Topics</label>
<div id="Topics">
Devices and sensors
</div>
</div>
<div class="itemBarLong">
<label for="Platforms">Platforms</label>
<div id="Platforms">
Windows RT
</div>
</div>
<div class="itemBarLong">
<label for="Requirements">Requirements</label>
<div id="Requirements">
</div>
</div>
<div class="itemBar">
<label for="LastUpdated">Primary Language</label>
<div id="LastUpdated">en-US</div>
</div>
<div class="itemBar">
<label for="LastUpdated">Last Updated</label>
<div id="LastUpdated">4/9/2013</div>
</div>
<div class="itemBarLong">
<label for="License">License</label>
<div id="License">
<a href="license.rtf">MS-LPL</a></div>
</div>
<div class="itemBar">
<div class="viewonlinecont">
<a data-link="online" href="http://code.msdn.microsoft.com/windowsapps/Media-Capture-Sample-adf87622">View this sample online</a>
</div>
</div>
</div>
</div>
<script type="text/javascript">
function initializePage() {
var otherTabClass = 'otherTab';
var hiddenPreClass = 'hidden';
var htmlDecode = function(encodedData) {
var decodedData = "";
if (encodedData) {
var div = document.createElement('div');
div.innerHTML = encodedData;
decodedData = div.firstChild.nodeValue.replace( /\\r\\n/ig , '\r\n');
}
return decodedData;
};
Galleries.iterateElem(Galleries.findElem(null, 'div', 'scriptcode'), function (index, scriptBlock) {
var titleElem = Galleries.findElem(scriptBlock, 'div', 'title')[0];
var labelElems = Galleries.findElem(titleElem, 'span');
if (labelElems.length == 0) {
labelElems = titleElem;
}
var languageSpans = Galleries.findElem(scriptBlock, 'span', 'hidden');
var pres = Galleries.findElem(scriptBlock, 'pre');
if (languageSpans.length > 0 && pres.length > 1) {
Galleries.iterateElem(labelElems, function(index, elem) {
var codePre = pres[index];
var labelSpan = elem;
var languageSpan = languageSpans[index];
elem.code = codePre.innerHTML.replace( /(\r(\n)?)|((\r)?\n)/ig , '\\r\\n');
codePre.className = codePre.className.replace(hiddenPreClass, '');
languageSpan.parentNode.removeChild(languageSpan);
});
pres = Galleries.findElem(scriptBlock, 'pre');
Galleries.iterateElem(labelElems, function(index, elem) {
var codePre = pres[index];
var labelSpan = elem;
if (index == 0) {
scriptBlock.activeTab = 0;
}
else {
labelSpan.className += otherTabClass;
codePre.className += hiddenPreClass;
}
Galleries.attachEventHandler(labelSpan, 'click', function(e) {
var activeTab = scriptBlock.activeTab;
labelElems[activeTab].className += otherTabClass;
pres[activeTab].className += hiddenPreClass;
codePre.className = codePre.className.replace(hiddenPreClass, '');
labelSpan.className = labelSpan.className.replace(otherTabClass, '');
scriptBlock.activeTab = index;
});
});
var preview = Galleries.findElem(scriptBlock, 'div', 'preview');
if (preview.length == 0) {
preview.push(pres[pres.length - 1]);
}
Galleries.iterateElem(preview, function(index, elem) {
elem.parentNode.removeChild(elem);
});
if (window.clipboardData && clipboardData.setData) {
var copyLink = document.createElement('a');
copyLink.href = 'javascript:void(0);';
copyLink.className = 'copyCode';
copyLink.innerHTML = 'Copy Code';
Galleries.attachEventHandler(copyLink, 'click', function (e) {
clipboardData.setData("Text", htmlDecode(labelElems[scriptBlock.activeTab].code));
return false;
});
scriptBlock.insertBefore(copyLink, scriptBlock.childNodes[0]);
}
}
});
}
Galleries.onWindowLoad(function(){
initializePage();
});
</script>
<div id="longDesc">
<div id="mainSection">
<p>This sample demonstrates how to use the <a href="http://msdn.microsoft.com/library/windows/apps/BR241124">
<b>MediaCapture</b> </a>API to capture video, audio, and pictures from a capture device, such as a webcam.
</p>
<p>Specifically, this sample covers: </p>
<ul>
<li>Previewing video from a capture device, such as a webcam, connected to the computer.
</li><li>Capturing video from a capture device, such as a webcam, connected to the computer.
</li><li>Taking a picture from a capture device, such as a webcam, connected to the computer.
</li><li>Enumerating cameras connected to the computer. </li><li>Adding a video effect to a video. </li><li>Recording audio from a capture device connected to the computer. </li></ul>
<p></p>
<p>For more information on capturing video in your app, see <a href="http://msdn.microsoft.com/library/windows/apps/Hh465152">
Quickstart: capturing a photo or video using the camera dialog</a> and <a href="http://msdn.microsoft.com/library/windows/apps/Hh452791">
Quickstart: capturing video using the MediaCapture API</a>.</p>
<p class="note"><b>Important</b>&nbsp;&nbsp; </p>
<p class="note">This sample uses the Media Extension feature of Windows&nbsp;8 to add functionality to the Microsoft Media Foundation pipeline. A Media Extension consists of a hybrid object that implements both Component Object Model (COM) and Windows Runtime
interfaces. The COM interfaces interact with the Media Foundation pipeline. The Windows Runtime interfaces activate the component and interact with the Windows Store app.
</p>
<p class="note">In most situations, it is recommended that you use Visual C&#43;&#43; with Component Extensions (C&#43;&#43;/CX ) to interact with the Windows Runtime. But in the case of hybrid components that implement both COM and Windows Runtime interfaces, such as Media
Extensions, this is not possible. C&#43;&#43;/CX can only create Windows Runtime objects. So, for hybrid objects it is recommended that you use
<a href="http://go.microsoft.com/fwlink/p/?linkid=243149">Windows Runtime C&#43;&#43; Template Library</a> to interact with the Windows Runtime. Be aware that Windows Runtime C&#43;&#43; Template Library has limited support for implementing COM interfaces.</p>
<p></p>
<p>To obtain an evaluation copy of Windows&nbsp;8, go to <a href="http://go.microsoft.com/fwlink/p/?linkid=241655">
Windows&nbsp;8</a>.</p>
<p>To obtain an evaluation copy of Microsoft Visual Studio&nbsp;2012, go to <a href="http://go.microsoft.com/fwlink/p/?linkid=241656">
Visual Studio&nbsp;2012</a>.</p>
<h3><a id="related_topics"></a>Related topics</h3>
<dl><dt><a href="http://go.microsoft.com/fwlink/p/?LinkID=227694">Windows 8 app samples</a>
</dt><dt><b>Roadmaps</b> </dt><dt><a href="http://msdn.microsoft.com/en-us/library/windows/apps/Hh465134">Adding multimedia</a>
</dt><dt><a href="http://msdn.microsoft.com/library/windows/apps/Hh465156">Capturing or rendering audio, video, and images</a>
</dt><dt><a href="http://msdn.microsoft.com/en-us/library/windows/apps/Hh767284">Designing UX for apps</a>
</dt><dt><a href="http://msdn.microsoft.com/library/windows/apps/BR229583">Roadmap for apps using C# and Visual Basic</a>
</dt><dt><a href="http://msdn.microsoft.com/en-us/library/windows/apps/Hh700360">Roadmap for apps using C&#43;&#43;</a>
</dt><dt><a href="http://msdn.microsoft.com/en-us/library/windows/apps/Hh465037">Roadmap for apps using JavaScript</a>
</dt><dt><b>Tasks</b> </dt><dt><a href="http://msdn.microsoft.com/library/windows/apps/Hh465152">Quickstart: capturing a photo or video using the camera dialog</a>
</dt><dt><a href="http://msdn.microsoft.com/library/windows/apps/Hh452791">Quickstart: capturing video using the MediaCapture API</a>
</dt><dt><b>Reference</b> </dt><dt><a href="http://msdn.microsoft.com/en-us/library/windows/apps/BR211961"><b>AddEffectAsync</b>
</a></dt><dt><a href="http://msdn.microsoft.com/en-us/library/windows/apps/BR226592"><b>ClearEffectsAsync</b>
</a></dt><dt><a href="http://msdn.microsoft.com/library/windows/apps/BR241124"><b>MediaCapture</b>
</a></dt><dt><a href="http://msdn.microsoft.com/en-us/library/windows/apps/BR226581"><b>MediaCaptureSettings</b>
</a></dt><dt><a href="http://msdn.microsoft.com/en-us/library/windows/apps/Hh701026"><b>MediaEncodingProfile</b>
</a></dt><dt><a href="http://msdn.microsoft.com/en-us/library/windows/apps/Hh700863"><b>StartRecordToStorageFileAsync</b>
</a></dt><dt><b>Windows.Media.Capture</b> </dt></dl>
<h3>Operating system requirements</h3>
<table>
<tbody>
<tr>
<th>Client</th>
<td><dt>Windows&nbsp;8 </dt></td>
</tr>
<tr>
<th>Server</th>
<td><dt>Windows Server&nbsp;2012 </dt></td>
</tr>
</tbody>
</table>
<h3>Build the sample</h3>
<p></p>
<ol>
<li>Start Visual Studio Express&nbsp;2012 for Windows&nbsp;8 and select <b>File</b> &gt; <b>
Open</b> &gt; <b>Project/Solution</b>. </li><li>Go to the directory in which you unzipped the sample. Go to the directory named for the sample, and double-click the Visual Studio Express&nbsp;2012 for Windows&nbsp;8 Solution (.sln) file.
</li><li>Press F7 or use <b>Build</b> &gt; <b>Build Solution</b> to build the sample. </li></ol>
<p></p>
<h3>Run the sample</h3>
<p>To debug the app and then run it, press F5 or use <b>Debug</b> &gt; <b>Start Debugging</b>. To run the app without debugging, press Ctrl&#43;F5 or use
<b>Debug</b> &gt; <b>Start Without Debugging</b>.</p>
</div>
</div>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

@ -1,418 +0,0 @@
/* ***************************************************
Galleries.css - Common Structure
This is where we define common layout for structures that are truly close to common across the different
Galleries sites. To make sure this works we need to follow certain conventions.
1. Define each logical structure in its own section with its own comment block that gives the section
a Name, Description and defines the root element if one exists (i.e #someElement). Also, mark the closing block.
2. Indent styles in a section to represent if it is a child of a previous element.
i.e. #someDiv{
}
#someDiv ul {
}
3. Do not include brand specific information here like colors and fonts unless they are *really* common.
4. If there is an element that you know will be overridden in each brand stylesheet still include it here with an empty definition.
This will aid in knowing what section to override and what selectors to use.
i.e. #someSction a {
}
5. When you add a new section also update the Table of Contents below so that we have a quick overview of the sections
*****************************************************/
/****************************************************
Table of Contents
Global - global classes
FileAttachmentDisplay - The list of attached files under the editor
Eyebrow - The breadcrumb control at the top of the master page
Pager - The common paging control, used for browsing pages of search results
Profile User Card - Elements in the profile usercard control
SideNav - The navigation side bar that contains the search filters
*****************************************************/
/********************************
Name: Global
Root: none
Description: truly global classes
********************************/
body {
text-align: left;
direction: ltr;
}
img.rss {
background: url(../../../GlobalResources/Images/Rss.png) no-repeat;
background-position: 0px 0px;
height: 17px;
width: 17px;
}
/* End Global Section */
/********************************
Name: FileAttachmentDisplay
Root: #fileAttachmentDisplay
Description: The list of attached files under the editor
********************************/
#fileAttachmentDisplay {
}
#fileAttachmentDisplay .attachment {
margin-right: 10px;
float: left;
}
#fileAttachmentDisplay .attachment .displayAttachment {
padding: 0px 0 13px 0;
float: left;
}
#fileAttachmentDisplay .attachment .removeAttachment {
background-image: url('/Content/Common/delete.png');
display: block;
width: 16px;
height: 16px;
float: left;
}
/* End FileAttachmentDisplay Section */
/********************************
Name: Eyebrow
Root: .EyebrowContainer
Description: The breadcrumb control at the top of the master page
********************************/
.EyebrowContainer {
}
.EyebrowContainer div.EyebrowElement{
display:inline;
}
.EyebrowContainer .EyebrowElement{
font-weight:normal
}
.EyebrowContainer .EyebrowLeafLink{
color:#000;
}
/* End Eyebrow Section */
/********************************
Name: Pager
Root: #Pager
Description: The common paging control, used for browsing pages of search results
********************************/
#Pager {
}
#Pager div{
display:inline;
}
/* End Pager Section */
/********************************
Name: Profile User Card
Root: #dashboardPage #userCard
Description: Elements in the profile usercard control
********************************/
#dashboardPage #userCard .profile-usercard-inline {
margin: 5px 0 10px 0;
}
/* #dashboardPage #userCard .profile-usercard {
width: 288px;
}
/* End Profile User Card Section */
/********************************
Name: Discussion
Root: #DiscussionsTabPane
Description: Defines the layout of the dicussion
********************************/
#DiscussionsTabPane {
}
#DiscussionsTabPane .itemHidden
{
background: lightgrey;
}
#discussionListItem {
}
.discussion .postActions
{
float: right;
}
#discussionListItem .postItem
{
white-space: pre-wrap;
word-wrap: break-word;
font-size:1em;
}
/* End Discussion Section */
/********************************
Name: SearchDefaultLocale
Root: .searchDefaultLocale
Description: Defines the layout of the include english result checkbox on the Browse Page
********************************/
.searchDefaultLocale
{
float: right;
margin: 20px 0 0 5px;
}
.searchDefaultLocale input
{
vertical-align:top;
}
.searchDefaultLocale span
{
margin-left: -3px;
}
/*-------- End SearchDefaultLocale --------*/
/********************************
Name: SideNav
Root: #sideNav
Description: Defines the layout of the naviation elements on the side of the Browse Page
These represent the different filters like Code Language, Category and Tag
********************************/
#sideNav {
width: 250px;
vertical-align:top;
background-color:#eee;
}
#sideNav h3 {
}
#sideNav .section {
padding: 0 0 10px 0;
position: relative;
}
#sideNav .section a {
}
#sideNav .section a:hover {
}
#sideNav .section > div {
padding:5px 5px 5px 0;
line-height:150%;
}
#sideNav .section ul {
list-style-type:none;
padding:0px;
margin:0px;
}
#sideNav .section ul li {
position: relative;
padding: 5px 5px 5px 0;
}
#sideNav .section ul li .selectedFilter {
float: left;
padding-right: 5px;
}
#sideNav .section div.itemCount {
float: right;
}
#sideNav .section form input[ type = "checkbox"] {
margin: 0px 4px 0px 0px;
vertical-align: middle;
}
/* End SideNav Section */
/*----------- Contribution Logos *******/
.contributionLogo {
float: left;
position: relative;
margin-right: 6px;
}
.logo_visualstudio {
background: transparent url('../common/logos/visualstudio.png') no-repeat;
width: 23px;
height: 12px;
margin-top: 3px;
}
.logo_allinonecode {
background: transparent url('../common/logos/1code.png') no-repeat;
width: 14px;
height: 16px;
}
.logo_exchange {
background: transparent url('../common/logos/exchange.png') no-repeat;
width: 14px;
height: 16px;
}
.logo_ie {
background: transparent url('../common/logos/ie.png') no-repeat;
width: 16px;
height: 16px;
}
.logo_office {
background: transparent url('../common/logos/office.png') no-repeat;
width: 17px;
height: 16px;
}
.logo_windows {
background: transparent url('../common/logos/windows.png') no-repeat;
width: 17px;
height: 16px;
}
.logo_azure {
background: transparent url('../common/logos/windowsazuredark.png') no-repeat;
width: 16px;
height: 16px;
}
.logo_windowsphone {
background: transparent url('../common/logos/windowsphone.png') no-repeat;
width: 16px;
height: 16px;
}
.contributionLogoTip {
position: absolute;
display: none;
border: solid 1px #CCC;
color: #333;
background-color: #F0F0F0;
font-size: 11px;
font-family: "Segoe UI",Sans-Serif;
box-shadow: 3px 3px 5px #888;
-moz-box-shadow: 3px 3px 5px #888;
z-index: 1003;
padding: 5px;
min-width: 250px;
}
/*----------- End Contribution Logos *******/
.clear
{
clear: both;
}
.customcontributionLogoTip {
position: absolute;
display: none;
border: solid 1px #CCC;
background-color: white;
color: #333;
font-size: 11px;
font-family: "Segoe UI",Sans-Serif;
box-shadow: 3px 3px 5px #888;
-moz-box-shadow: 3px 3px 5px #888;
z-index: 1004;
padding: 5px;
min-width: 250px;
}
.customcontributionTittle {
font-size: 14px;
margin-left: 90px;
}
.customcontributionDiscription {
font-size: 13px;
margin: 10px 5px;
text-align: justify;
}
.customcontribution {
float: left;
position: relative;
margin-right: 6px;
}
.customcontributionLink {
margin-left: 5px;
}
.customcontributionlogo {
float: left;
padding: 0 10px;
margin: 0;
width: 70px;
height: 70px;
background-repeat: no-repeat;
}
.logo_azure_large {
background-image: url('../common/logos/windowsazure_large.png');
}
.logo_visualstudio_large {
background-image: url('../common/logos/visualstudio_large.png');
}
.logo_exchange_large {
background-image: url('../common/logos/exchange_large.png');
}
.logo_ie_large {
background-image: url('../common/logos/ie_large.png');
}
.logo_office_large {
background-image: url('../common/logos/office_large.png');
}
.logo_windows_large {
background-image: url('../common/logos/windows_large.png');
}
.logo_windowsphone_large {
background-image: url('../common/logos/windowsphone_large.png');
}
/* Custome Header */
.dirSubHeading .windowssdk .container
{
background: #FF3300 url('wpappsbackground.png') no-repeat;
color: white;
padding: 8px 10px 18px 170px;
}
.dirSubHeading .windowssdk .container h1, .dirSubHeading .windowssdk .container h2 {
color: white !important;
}
.dirSubHeading .windowssdk .container p {
margin: 20px 0 0 0 !important;
}
.dirSubHeading .windowssdk .container a {
background-color:#ffd800;
color: #2a2a2a !important;
cursor:pointer;
font-size:13px;
font-family:'Segoe UI Semibold','Segoe UI','Lucida Grande',Verdana,Arial,Helvetica,sans-serif;
padding:4px 12px 6px;
}

@ -1,147 +0,0 @@
#container {
min-height: 768px;
}
#leftSubHeaderContainer
{
margin-top:20px;
}
#title h1
{
font-size:25px;
}
#subtitle h2
{
font-size:15px;
}
#subtitle
{
margin-left:10px;
}
#formContainer
{
margin-left:10px;
margin-top:30px;
}
.formLabel
{
float:left;
width: 250px;
}
.formRow
{
clear:both;
padding: 10px 0 10px 10px;
}
.formRecaptchaRow
{
clear:both;
float:left;
margin-top:20px;
margin-left:10px;
margin-bottom:20px;
}
.formSubmitRow
{
clear:both;
margin-top:20px;
margin-left:300px;
margin-bottom:20px;
}
.formControl {
width:300px;
float:left;
}
.formControl .textInput
{
width:300px;
}
.formControl textarea
{
width:425px;
height:100px;
}
.formControl .tag
{
width:425px;
}
.formControl .richText
{
margin-top:10px;
width:500px;
height:440px;
}
.formWideLabel
{
width:500px;
}
.formBigLabel
{
margin-top:20px;
font-size:20px;
}
.formControlBelow
{
clear:both;
margin-top:10px;
width:500px;
}
.required
{
color: Red;
}
.helpText
{
color: #9D9D9D;
font-style: italic;
}
#agreementSummary
{
clear:both;
margin-top:10px;
width:800px;
}
.field-validation-error, .validation-summary-errors
{
color: #FF0000;
font-weight: bold;
}
.tinyMCETemplate {
position: relative;
left: 400px;
width: 300px;
max-height: 300px;
overflow: auto;
}
.IE6 .tinyMCETemplate {
left: 25px;
}
.ownerBar {
padding: 5px;
}
.ownerBar .ownerBarOptions {
float: right;
}

@ -1,303 +0,0 @@
/*Global*/
h1 {
font-size: 36px;
font-family: 'Segoe UI Light';
color: #707070;
font-weight: normal;
margin-bottom: 17px !important;
}
h2, h3, h4, h5, h6, #searchPage h3 {
font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif !important;
font-weight:normal;
color: #2A2A2A !important;
}
a, a:link, a:visited {
color: #0095c4;
}
body {
color:#707070;
}
.profile-usercard {
color:#707070 !important;
}
/*temporary setting to override msdn_windows.css
can remove once conflicting settings are removed from that file*/
.LocalNavigation, .LocalNavigation .TabOn, .LocalNavigation .TabOn:hover, .LocalNavigation .TabOff, .LocalNavigation .TabOff a:hover {
display: block;
background-color:transparent !important;
color: #0095c4;
}
.LocalNavigation .TabOff a {
color:#707070 ;
}
/*End Global*/
.EyebrowContainer
{
margin-bottom: 0 !important;
}
#sideNav
{
width: 215px !important;
}
#searchPage #mainContentContainer
{
margin-right:0 !important;
margin-left:243px !important;
}
#searchPage .dirSubHeading h2
{
font-size: 14px !important;
font-weight: normal !important;
color: #454545 !important;
line-height: 1.45;
}
#searchPage #directoryListFooter, #searchPage #Pager {
font-size: 14px;
}
#searchPage h2, #searchPage h3
{
font-size: 1.25em !important;
}
#sideNav #contributeSection h3, .sidebar #contributeSection h3, #contributeSection h3
{
font-size: 1.65em !important;
}
.subMenu > h2
{
font-family: 'Segoe UI Light','Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif !important;
font-weight:normal;
font-size:30px;
margin: 15px 10px 5px 0;
padding-bottom:0px;
}
.itemRow {
}
.itemRow .itemBody, .itemRow .itemInfo {
padding: 18px 17px 20px 0;
font-size: 14px;
line-height: 1.45em;
}
.itemRow .itemTitle {
font-weight: normal;
}
.itemRow .summaryBox{
color: #454545;
}
.Samples #MainContent .itemRow .itemTitle a {
font-weight: 600 !important;
line-height: 1.45;
}
#MainContent a.officialMicrosoftLabel
{
color: #ACACAC;
}
.tabContents {
border-top-width:0px;
}
#UploadPage {
margin: 0px 0px 0px 10px;
}
#UploadPage h1 {
padding: 0;
font-size: 22px;
}
#UploadPage h2 {
color:#F39700 !important;
}
#UploadPage #uploadPageInstruction {
margin-top:10px;
}
#UploadPage fieldset {
margin-left:0px;
}
#UploadPage fieldset h2 {
font-weight:normal;
}
#UploadPage fieldset#uploadsForm{
margin-top:25px;
}
#UploadPage fieldset#summary textarea {
margin-left:0px;
}
#UploadPage .projectTypeChoice > div {
height: 250px;
}
#sideNav {
}
#sideNav .section h3 {
background-color: transparent;
}
#sideNav .section UL LI {
border-bottom-width: 0px;
}
#sideNav .section form > div {
border-bottom: none;
color: #707070;
}
#sideNav .section ul li > div.itemCount
{
color: #707070;
}
#searchPage {
}
#searchPage h2, #searchPage h3 {
text-transform:none;
background-color:transparent;
font-weight:normal;
font-size:1.2em;
}
#searchPage .browseFilterBar {
background-color:transparent;
border-width:0px;
font-weight:normal;
}
#requestsPage {
padding-top:15px;
}
#requestsPage .tabHeaders {
overflow: visible;
}
#requestsPage #requestsList {
border: none;
}
#requestsPage h2, #requestsPage h3 {
text-transform:none;
background-color:transparent;
font-weight:normal;
font-size:1.2em;
}
.reqBrowseContent .title {
font-weight: bold !important;
color:#000 !important;
font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif !important;
}
.reqDescPage #header #votenumber {
height: 30px;
padding: 9px 12px 3px 12px;
}
#extraActions {
}
#extraActions .section
{
margin-bottom: 10px;
}
#extraActions .section a
{
font-weight:normal;
}
#extraActions #contributeSection div img {
width:0px;
}
#projectPage {
}
#projectPage .projectTitle {
color: #707070;
margin: 5px 0px 15px 0px;
}
#projectPage h2.projectSummary, #projectPage #projectInfo, #projectPage .tabHeaders {
font-size: 14px !important;
line-height: 1.45em;
color: #454545 !important;
font-weight: normal !important;
}
#projectPage #projectInfo a {
color: #00749e;
}
#projectPage #Downloads a, #projectPage #Downloads label {
font-size: 14px;
}
#projectPage #reportAbuse {
font-size: 1em;
}
#projectPage #publishBar a, #projectPage #publishBar a:visited {
color: #0095c4;
font-weight: normal;
}
#projectPage #Collections .bevelButton{
background-color: #F8F8F8;
color: #0095C4;
border: 1px solid #707070;
}
#projectPage #DiscussionsTabPane .threadHeader .title {
font-weight:bold !important;
color:Black !important;#F8F8F8;
font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif !important;
}
#projectPage .sidebar .section .titleBar h3 {
font-weight:normal;
font-size:1.2em;
}
#LocalNav {
}
#LocalNav.HeaderTabs {
margin-left:11px;
}
#searchPage .dirSubHeading h1
{
margin-bottom:17px !important;
}

@ -1,179 +0,0 @@
body {
color: #000000;
font-family: 'Segoe UI',Verdana,Arial;
font-size: 0.813em;
font-style: normal;
word-wrap: break-word;
}
/*BEGIN HEADERS*/
.h1, h1 {
color: #3A3E43;
font-family: 'Segoe UI',Verdana,Arial;
font-size: 1.4em;
font-weight: bold;
margin: 0;
}
.h2, h2 {
color: #3A3E43;
font-family: 'Segoe UI',Verdana,Arial;
font-size: 1.2em;
font-weight: bold;
}
.h3, h3 {
color: #3A3E43;
font-family: 'Segoe UI',Verdana,Arial;
font-size: 1.077em;
font-weight: bold;
}
.h4, h4 {
color: #3A3E43;
font-family: 'Segoe UI',Verdana,Arial;
font-size: 1em;
font-weight: bold;
}
h4.subHeading {
margin-bottom: 7px;
margin-top: 13px;
}
/*END HEADERS*/
/*BEGIN LINKS*/
a:link {
color: #00749E;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
a:visited {
color: #960BB4;
text-decoration: none;
}
a:focus {
outline: 1px dotted #000000;
}
a.libraryLink:link {
text-decoration:none;
border-bottom:1px dotted;
}
/*END LINKS*/
/*BEGIN IMAGES*/
img {
border: 0 none;
}
/*END IMAGES*/
/*BEGIN TABLE*/
.title table {
color: #000000;
font-family: 'Segoe UI',Verdana,Arial;
font-size: 1.077em;
font-style: normal;
}
table {
border-collapse: collapse;
}
table, table th, table td {
border:1px solid #BBBBBB;
}
/*END TABLE*/
/*BEGIN LIST*/
ul {
list-style-type: disc;
margin-left:40px;
padding-left: 0;
}
ul li {
padding-bottom: 10px;
}
ol {
margin-left:40px;
padding-left: 0;
}
ol li {
padding-bottom: 10px;
}
/*END LIST*/
.scriptcode {
position: relative;
padding: 8px 8px 8px 8px;
background: #FFFFFF;
font-size: 12px;
line-height: 125%;
font-weight:normal;
}
.scriptcode pre
{
white-space: pre-wrap !important; /* css-3 */
word-wrap: break-word !important; /* Internet Explorer 5.5+ */
margin:0 0 10px 0 !important;
padding: 10px;
border-top: solid 2px #D0D2D2;
border-bottom: solid 2px #D0D2D2;
border-left: solid 1px #D0D2D2;
border-right: solid 1px #D0D2D2;
}
.scriptcode .title {
color:#E66A38;
font-size: 12px;
font-weight:bold;
margin: 0;
min-height: 23px;
}
.scriptcode .title > span:first-child {
border-left: solid 1px #D0D2D2;
}
.scriptcode .title > span {
padding: 4px 8px 4px 8px;
display: inline-block;
border-top: 1px solid #D0D2D2;
border-right: 1px solid #D0D2D2;
border-collapse: collapse;
text-align: center;
background: white;
}
.scriptcode .title > span.otherTab {
color: #1364C4;
background: #EFF5FF;
cursor: pointer;
}
.scriptcode .hidden {
display: none !important;
visibility: hidden !important;
}
.scriptcode .copyCode {
padding: 8px 2px 0 2px !important;
margin-right: 15px;
position: absolute !important;
right: 0 !important;
top: 17px;
display:block !important;
background: #FFFFFF;
}
.scriptcode .pluginLinkHolder {
display: none;
}
.scriptcode .pluginEditHolderLink {
display: none;
}
.Opera wbr
{
display: inline-block;
}
.IE9 wbr:after
{
content: "\00200B";
}

@ -1,52 +0,0 @@
var Galleries = Galleries || { };
(function() {
function findElem(parent, tagName, className) {
var elemToSearch = (parent) ? parent : document.body;
var tagMatch = elemToSearch.getElementsByTagName(tagName);
var evaluator = function(elem) {
return (className) ? (elem.className.indexOf(className) > -1) : true;
};
return findArrayElem(tagMatch, evaluator);
}
function findArrayElem(array, evaluator) {
var newArray = new Array();
for (var count = 0; count < array.length; count++) {
if (evaluator(array[count])) {
newArray.push(array[count]);
}
}
return newArray;
}
function iterateElem(elems, delegate) {
for(var count = 0; count < elems.length; count++) {
delegate(count, elems[count]);
}
}
function isHidden(elem) {
return (elem.offsetHeight === 0 && elem.offsetWidth === 0) || elem.style && elem.style.display === "none";
}
function onWindowLoad(callback) {
attachEventHandler(null, 'load', callback);
}
function attachEventHandler(elem, event, callback) {
var elemToAttach = (elem) ? elem : window;
if (document.addEventListener) {
elemToAttach.addEventListener(event, callback, false);
} else if ( document.attachEvent ) {
elemToAttach.attachEvent('on' + event, callback);
}
}
Galleries.findElem = findElem;
Galleries.iterateElem = iterateElem;
Galleries.attachEventHandler = attachEventHandler;
Galleries.onWindowLoad = onWindowLoad;
})();

@ -1,25 +0,0 @@
{\rtf1\ansi\ansicpg1252\uc1\htmautsp\deff2{\fonttbl{\f0\fcharset0 Times New Roman;}{\f2\fcharset0 MS Shell Dlg;}}{\colortbl\red0\green0\blue0;\red255\green255\blue255;}\loch\hich\dbch\pard\plain\ltrpar\itap0{\lang1033\fs16\f2\cf0 \cf0\ql{\f2 \line \li0\ri0\sa0\sb0\fi0\ql\par}
{\fs40\f2 {\ltrch MICROSOFT LIMITED PUBLIC LICENSE version 1.1}\li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 \line {\ltrch ----------------------}\line \li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 {\ltrch This license governs use of code marked as \ldblquote sample\rdblquote or \ldblquote example\rdblquote available on this web site without a license agreement, as provided under the section above titled \ldblquote NOTICE SPECIFIC TO SOFTWARE AVAILABLE ON THIS WEB SITE.\rdblquote If you use such code (the \ldblquote software\rdblquote ), you accept this license. If you do not accept the license, do not use the software.}\li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 \line \li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 {\ltrch 1. Definitions}\li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 {\ltrch The terms \ldblquote reproduce,\rdblquote \ldblquote reproduction,\rdblquote \ldblquote derivative works,\rdblquote and \ldblquote distribution\rdblquote have the same meaning here as under U.S. copyright law. }\li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 {\ltrch A \ldblquote contribution\rdblquote is the original software, or any additions or changes to the software.}\li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 {\ltrch A \ldblquote contributor\rdblquote is any person that distributes its contribution under this license.}\li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 {\ltrch \ldblquote Licensed patents\rdblquote are a contributor\rquote s patent claims that read directly on its contribution.}\li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 \line \li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 {\ltrch 2. Grant of Rights}\li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 {\ltrch (A) Copyright Grant - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.}\li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 {\ltrch (B) Patent Grant - Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.}\li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 \line \li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 {\ltrch 3. Conditions and Limitations}\li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 {\ltrch (A) No Trademark License- This license does not grant you rights to use any contributors\rquote name, logo, or trademarks.}\li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 {\ltrch (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.}\li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 {\ltrch (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.}\li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 {\ltrch (D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.}\li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 {\ltrch (E) The software is licensed \ldblquote as-is.\rdblquote You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.}\li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 {\ltrch (F) Platform Limitation - The licenses granted in sections 2(A) and 2(B) extend only to the software or derivative works that you create that run directly on a Microsoft Windows operating system product, Microsoft run-time technology (such as the .NET Framework or Silverlight), or Microsoft application platform (such as Microsoft Office or Microsoft Dynamics).}\li0\ri0\sa0\sb0\fi0\ql\par}
{\f2 \line \li0\ri0\sa0\sb0\fi0\ql\par}
}
}
Loading…
Cancel
Save